/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using InputBackpropWindow5Stride1 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 5, 1>;
TYPED_TEST_SUITE(InputBackpropWindow5Stride1, GTestTypePairs);
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,  510.,  750.,  870.,  816.,  705.,  796.,  1220., 1730.,
      1940., 1756., 1474., 1610., 2400., 3325., 3650., 3230., 2660.,
      2690., 3900., 5275., 5600., 4850., 3920., 3544., 5020., 6650.,
      6960., 5908., 4690., 3792., 5310., 6960., 7230., 6072., 4773.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,  4.,   7.,   10.,  13.,  10.,  9.,  29.,  39.,  49.,  59.,  40.,
      29., 79.,  89.,  99.,  109., 70.,  49., 129., 139., 149., 159., 100.,
      69., 179., 189., 199., 209., 130., 63., 150., 157., 164., 171., 100.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,  3708.,  5505.,  6435.,  6084.,  5289.,  5888.,  9088.,  12960.,
      14600., 13280., 11192., 12115., 18140., 25225., 27775., 24660., 20365.,
      20575., 29900., 40525., 43075., 37380., 30265., 27464., 38944., 51640.,
      54080., 45952., 36512., 29571., 41436., 54345., 56475., 47460., 37329.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   42.,  62.,   82.,   67.,   52.,   184.,  256.,
      328.,  400.,  280., 192.,  544.,  616.,  688.,  760.,  500.,
      332.,  904.,  976., 1048., 1120., 720.,  472.,  1264., 1336.,
      1408., 1480., 940., 457.,  1102., 1154., 1206., 1258., 743.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,  28200.,  42090.,  49410.,  46920.,  40926.,  45208.,  70048.,
      100200., 113160., 103200., 87160.,  93890.,  140920., 196350., 216550.,
      192600., 159290., 160850., 234040., 317550., 337750., 293400., 237770.,
      216184., 306720., 406920., 426280., 362400., 288088., 233526., 327336.,
      429450., 446370., 375240., 295230.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   284.,  428.,  572.,  486.,  340.,  1288., 1832.,
      2376.,  2920.,  2084., 1380., 4008., 4552., 5096., 5640., 3764.,
      2420.,  6728.,  7272., 7816., 8360., 5444., 3460., 9448., 9992.,
      10536., 11080., 7124., 3470., 8428., 8828., 9228., 9628., 5718.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,  1272.,  1668.,  2040.,  2505.,  3000.,  2955.,  3480.,  2820.,
      3264.,  2469.,  2820.,  2704.,  3184.,  4208.,  4880.,  6040.,  6920.,
      6840.,  7760.,  6256.,  7024.,  5296.,  5896.,  5675.,  6440.,  8540.,
      9600.,  11925., 13300., 13175., 14600., 11740., 12920., 9725.,  10640.,
      9815.,  10760., 14300., 15600., 19425., 21100., 20675., 22400., 17980.,
      19400., 14585., 15680., 13288., 14176., 18864., 20080., 25040., 26600.,
      26240., 27840., 22320., 23632., 17752., 18760., 14403., 15168., 20196.,
      21240., 26505., 27840., 27555., 28920., 23172., 24288., 18237., 19092.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   6.,   16.,  14.,  28.,  22.,  40.,  30.,  52.,  27.,  40.,
      16.,  36.,  68.,  116., 100., 156., 132., 196., 164., 236., 120., 160.,
      76.,  116., 228., 316., 260., 356., 292., 396., 324., 436., 220., 280.,
      136., 196., 388., 516., 420., 556., 452., 596., 484., 636., 320., 400.,
      196., 276., 548., 716., 580., 756., 612., 796., 644., 836., 420., 520.,
      205., 252., 502., 600., 526., 628., 550., 656., 574., 684., 343., 400.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,   9645.,   12636.,  15564.,  19095.,  22995.,  22635.,  26775.,
      21708.,  25212.,  19077.,  21849.,  20708.,  24500.,  32368.,  37680.,
      46620.,  53580.,  52940.,  60220.,  48560.,  54640.,  41204.,  45956.,
      43915.,  49975.,  66260.,  74660.,  92725.,  103625., 102625., 113925.,
      91620.,  100980., 76015.,  83275.,  76675.,  84175.,  111860., 122180.,
      152125., 165425., 162025., 175725., 141060., 152340., 114535., 123235.,
      104564., 111620., 148528., 158192., 197260., 209660., 206780., 219500.,
      175984., 186416., 140036., 148052., 113721., 119805., 159516., 167820.,
      209415., 220035., 217755., 228615., 183180., 192060., 144213., 151017.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    25.,   34.,   106.,  90.,   194.,  146.,  282.,  202.,
      370.,  193.,  293.,  94.,   246.,  460.,  828.,  700.,  1132.,
      940.,  1436., 1180., 1740., 886.,  1198., 534.,  846.,  1660.,
      2348., 1900., 2652., 2140., 2956., 2380., 3260., 1646., 2118.,
      974.,  1446., 2860., 3868., 3100., 4172., 3340., 4476., 3580.,
      4780., 2406., 3038., 1414., 2046., 4060., 5388., 4300., 5692.,
      4540., 5996., 4780., 6300., 3166., 3958., 1549., 1921., 3826.,
      4602., 4010., 4818., 4194., 5034., 4378., 5250., 2633., 3085.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,   75054.,   98280.,   121512.,  149010.,  179970.,  177090.,
      209970.,  170280.,  198120.,  149934.,  171966.,  161992.,  192136.,
      253792.,  296032.,  366200.,  421560.,  416440.,  474360.,  382560.,
      430944.,  325000.,  362824.,  345410.,  393650.,  521880.,  588760.,
      731150.,  817950.,  809950.,  899950.,  723800.,  798360.,  601010.,
      658850.,  606050.,  665810.,  884760.,  967000.,  1203950., 1309950.,
      1282750., 1391950., 1117400., 1207320., 907730.,  977090.,  829576.,
      885832.,  1178720., 1255776., 1565880., 1664760., 1641720., 1743160.,
      1397600., 1480800., 1112392., 1176328., 903774.,  952302.,  1267944.,
      1334184., 1664850., 1749570., 1731330., 1817970., 1456680., 1527528.,
      1146990., 1201278.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    174.,   220.,   764.,   636.,   1436.,  1052.,  2108.,  1468.,
      2780.,  1454.,  2238.,  620.,   1804.,  3352.,  6232.,  5208.,  8600.,
      7064.,  10968., 8920.,  13336., 6796.,  9260.,  3980.,  6444.,  12632.,
      18072., 14488., 20440., 16344., 22808., 18200., 25176., 12716., 16460.,
      7340.,  11084., 21912., 29912., 23768., 32280., 25624., 34648., 27480.,
      37016., 18636., 23660., 10700., 15724., 31192., 41752., 33048., 44120.,
      34904., 46488., 36760., 48856., 24556., 30860., 12030., 14990., 29852.,
      36028., 31292., 37724., 32732., 39420., 34172., 41116., 20622., 24222.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      51412.,  53152.,  54916.,  56704.,  73072.,  75456.,  77872.,  80320.,
      97100.,  100160., 103260., 106400., 101820., 104960., 108140., 111360.,
      86704.,  89280.,  91888.,  94528.,  69028.,  71008.,  73012.,  75040.,
      56109.,  57612.,  59133.,  60672.,  78732.,  80784.,  82860.,  84960.,
      103395., 106020., 108675., 111360., 107535., 110220., 112935., 115680.,
      90492.,  92688.,  94908.,  97152.,  71265.,  72948.,  74649.,  76368.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    9.,    16.,   10.,   24.,   42.,   64.,   34.,   56.,
      82.,   112.,  58.,   88.,   122.,  160.,  82.,   120.,  162.,  208.,
      85.,   108.,  133.,  160.,  30.,   64.,   102.,  144.,  188.,  272.,
      364.,  464.,  300.,  400.,  508.,  624.,  412.,  528.,  652.,  784.,
      524.,  656.,  796.,  944.,  406.,  480.,  558.,  640.,  230.,  304.,
      382.,  464.,  748.,  912.,  1084., 1264., 860.,  1040., 1228., 1424.,
      972.,  1168., 1372., 1584., 1084., 1296., 1516., 1744., 766.,  880.,
      998.,  1120., 430.,  544.,  662.,  784.,  1308., 1552., 1804., 2064.,
      1420., 1680., 1948., 2224., 1532., 1808., 2092., 2384., 1644., 1936.,
      2236., 2544., 1126., 1280., 1438., 1600., 630.,  784.,  942.,  1104.,
      1868., 2192., 2524., 2864., 1980., 2320., 2668., 3024., 2092., 2448.,
      2812., 3184., 2204., 2576., 2956., 3344., 1486., 1680., 1878., 2080.,
      729.,  820.,  913.,  1008., 1818., 2008., 2202., 2400., 1906., 2104.,
      2306., 2512., 1994., 2200., 2410., 2624., 2082., 2296., 2514., 2736.,
      1261., 1372., 1485., 1600.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,  31353.,  35421.,  39633.,  46332.,  51948.,  57756.,  63756.,
      70755.,  78255.,  85995.,  93975.,  84555.,  92535.,  100755., 109215.,
      81756.,  88524.,  95484.,  102636., 72285.,  77649.,  83157.,  88809.,
      77324.,  84668.,  92204.,  99932.,  121744., 132048., 142608., 153424.,
      176340., 189860., 203700., 217860., 201140., 215300., 229780., 244580.,
      185360., 197200., 209296., 221648., 157868., 167132., 176588., 186236.,
      166795., 178615., 190675., 202975., 252740., 269140., 285860., 302900.,
      354925., 376225., 397925., 420025., 393925., 416025., 438525., 461425.,
      352740., 371060., 389700., 408660., 293395., 307615., 322075., 336775.,
      295675., 310375., 325315., 340495., 432260., 452500., 473060., 493940.,
      588925., 615025., 641525., 668425., 627925., 654825., 682125., 709825.,
      547620., 569780., 592260., 615060., 445315., 462415., 479755., 497335.,
      407852., 421724., 435788., 450044., 579856., 598864., 618128., 637648.,
      770740., 795140., 819860., 844900., 808340., 833380., 858740., 884420.,
      688528., 709072., 729872., 750928., 548300., 564092., 580076., 596252.,
      445893., 457881., 470013., 482289., 625788., 642156., 658716., 675468.,
      821955., 842895., 864075., 885495., 854955., 876375., 898035., 919935.,
      719580., 737100., 754812., 772716., 566781., 580209., 593781., 607497.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,   466.,   234.,
      402.,   602.,   834.,   410.,   642.,   906.,   1202.,  586.,   882.,
      1210.,  1570.,  637.,   817.,   1013.,  1225.,  178.,   442.,   738.,
      1066.,  1348.,  2004.,  2724.,  3508.,  2212.,  2996.,  3844.,  4756.,
      3076.,  3988.,  4964.,  6004.,  3940.,  4980.,  6084.,  7252.,  3106.,
      3690.,  4306.,  4954.,  1698.,  2282.,  2898.,  3546.,  5668.,  6964.,
      8324.,  9748.,  6532.,  7956.,  9444.,  10996., 7396.,  8948.,  10564.,
      12244., 8260.,  9940.,  11684., 13492., 5906.,  6810.,  7746.,  8714.,
      3218.,  4122.,  5058.,  6026.,  9988.,  11924., 13924., 15988., 10852.,
      12916., 15044., 17236., 11716., 13908., 16164., 18484., 12580., 14900.,
      17284., 19732., 8706.,  9930.,  11186., 12474., 4738.,  5962.,  7218.,
      8506.,  14308., 16884., 19524., 22228., 15172., 17876., 20644., 23476.,
      16036., 18868., 21764., 24724., 16900., 19860., 22884., 25972., 11506.,
      13050., 14626., 16234., 5653.,  6377.,  7117.,  7873.,  14170., 15682.,
      17226., 18802., 14858., 16434., 18042., 19682., 15546., 17186., 18858.,
      20562., 16234., 17938., 19674., 21442., 9869.,  10753., 11653., 12569.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,  246846.,  279246.,  312798.,  365160.,  409896.,  456168.,
      503976.,  558690.,  618450.,  680130.,  743730.,  668610.,  732210.,
      797730.,  865170.,  647400.,  701352.,  756840.,  813864.,  573006.,
      615774.,  659694.,  704766.,  611368.,  669928.,  730024.,  791656.,
      963808.,  1045984., 1130208., 1216480., 1397400., 1505240., 1615640.,
      1728600., 1595160., 1708120., 1823640., 1941720., 1471200., 1565664.,
      1662176., 1760736., 1253800., 1327720., 1403176., 1480168., 1322690.,
      1417010., 1513250., 1611410., 2005720., 2136600., 2270040., 2406040.,
      2818350., 2988350., 3161550., 3337950., 3129550., 3305950., 3485550.,
      3668350., 2803800., 2950040., 3098840., 3250200., 2333090., 2446610.,
      2562050., 2679410., 2350850., 2468210., 2587490., 2708690., 3438040.,
      3599640., 3763800., 3930520., 4685550., 4893950., 5105550., 5320350.,
      4996750., 5211550., 5429550., 5650750., 4359000., 4535960., 4715480.,
      4897560., 3545570., 3682130., 3820610., 3961010., 3249064., 3359848.,
      3472168., 3586024., 4620000., 4771808., 4925664., 5081568., 6141720.,
      6336600., 6534040., 6734040., 6441880., 6641880., 6844440., 7049560.,
      5487840., 5651936., 5818080., 5986272., 4370728., 4496872., 4624552.,
      4753768., 3555246., 3651006., 3747918., 3845982., 4990056., 5120808.,
      5253096., 5386920., 6554850., 6722130., 6891330., 7062450., 6818370.,
      6989490., 7162530., 7337490., 5739240., 5879208., 6020712., 6163752.,
      4520910., 4628190., 4736622., 4846206.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      1724.,   3036.,   4604.,   6428.,   3068.,   4892.,   6972.,   9308.,
      4412.,   6748.,   9340.,   12188.,  4926.,   6350.,   7902.,   9582.,
      1180.,   3260.,   5596.,   8188.,   10168.,  15352.,  21048.,  27256.,
      16952.,  23160.,  29880.,  37112.,  23736.,  30968.,  38712.,  46968.,
      30520.,  38776.,  47544.,  56824.,  24284.,  28924.,  33820.,  38972.,
      13020.,  17660.,  22556.,  27708.,  44088.,  54392.,  65208.,  76536.,
      50872.,  62200.,  74040.,  86392.,  57656.,  70008.,  82872.,  96248.,
      64440.,  77816.,  91704.,  106104., 46364.,  53564.,  61020.,  68732.,
      24860.,  32060.,  39516.,  47228.,  78008.,  93432.,  109368., 125816.,
      84792.,  101240., 118200., 135672., 91576.,  109048., 127032., 145528.,
      98360.,  116856., 135864., 155384., 68444.,  78204.,  88220.,  98492.,
      36700.,  46460.,  56476.,  66748.,  111928., 132472., 153528., 175096.,
      118712., 140280., 162360., 184952., 125496., 148088., 171192., 194808.,
      132280., 155896., 180024., 204664., 90524.,  102844., 115420., 128252.,
      44510.,  50286.,  56190.,  62222.,  111868., 123932., 136252., 148828.,
      117308., 129884., 142716., 155804., 122748., 135836., 149180., 162780.,
      128188., 141788., 155644., 169756., 78078.,  85134.,  92318.,  99630.};
  const std::array<int, 4> in_shape = {{1, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,  560.,  820.,  940.,  1060., 980.,  837.,  892.,  1360.,
      1920., 2130., 2340., 2096., 1744., 1820., 2700., 3725., 4050.,
      4375., 3840., 3140., 3080., 4450., 6000., 6325., 6650., 5730.,
      4610., 4078., 5760., 7610., 7920., 8230., 6960., 5506., 4374.,
      6110., 7990., 8260., 8530., 7142., 5598.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   10.,  16.,  22.,  22.,  15.,  10.,  32.,  68.,  89.,
      110., 96.,  60.,  35.,  92.,  173., 194., 215., 176., 105., 60.,
      152., 278., 299., 320., 256., 150., 85.,  212., 383., 404., 425.,
      336., 195., 84.,  193., 328., 343., 358., 269., 150.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,  4084.,  6035.,  6965.,  7895.,  7348.,  6309.,  6620.,  10160.,
      14420., 16060., 17700., 15920., 13292., 13735., 20460., 28325., 30875.,
      33425., 29420., 24115., 23605., 34180., 46175., 48725., 51275., 44260.,
      35665., 31652., 44752., 59180., 61620., 64060., 54224., 42932., 34155.,
      47740., 62465., 64595., 66725., 55900., 43839.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,   101.,  143.,  150.,  105.,  58.,   204.,
      454.,  610.,  766.,  684.,  434.,  238.,  644.,  1234., 1390.,
      1546., 1284., 774.,  418.,  1084., 2014., 2170., 2326., 1884.,
      1114., 598.,  1524., 2794., 2950., 3106., 2484., 1454., 623.,
      1442., 2465., 2579., 2693., 2034., 1139.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,  31112.,  46210.,  53530.,  60850.,  56840.,  48942.,
      50920.,  78432.,  111640., 124600., 137560., 124000., 103720.,
      106610., 159160., 220750., 240950., 261150., 230200., 188930.,
      184730., 267800., 362150., 382350., 402550., 347800., 280490.,
      249352., 352736., 466680., 486040., 505400., 428000., 339016.,
      269910., 377384., 493930., 510850., 527770., 442280., 346950.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   706.,   1018.,  1100.,  782.,   380.,   1432.,
      3284.,  4484.,  5684.,  5144.,  3292.,  1740.,  4792.,  9284.,  10484.,
      11684., 9784.,  5932.,  3100.,  8152.,  15284., 16484., 17684., 14424.,
      8572.,  4460.,  11512., 21284., 22484., 23684., 19064., 11212., 4790.,
      11132., 19090., 19978., 20866., 15804., 8870.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,  1404.,  1844.,  2240.,  2755.,  3280.,  3205.,  3760.,  3655.,
      4240.,  3428.,  3920.,  2961.,  3348.,  3052.,  3568.,  4720.,  5440.,
      6740.,  7680.,  7540.,  8520.,  8340.,  9360.,  7536.,  8384.,  6316.,
      6976.,  6455.,  7280.,  9660.,  10800., 13425., 14900., 14675., 16200.,
      15925., 17500., 14060., 15360., 11555., 12560., 11285., 12320., 16380.,
      17800., 22175., 24000., 23425., 25300., 24675., 26600., 21340., 22920.,
      17225., 18440., 15340., 16312., 21712., 23040., 28740., 30440., 29940.,
      31680., 31140., 32920., 26384., 27840., 20908., 22024., 16659., 17496.,
      23300., 24440., 30505., 31960., 31555., 33040., 32605., 34120., 27332.,
      28568., 21447., 22392.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   37.,   64.,   55.,   88.,
      62.,   88.,   45.,   60.,   18.,   40.,   76.,   128.,  182.,  272.,
      254.,  356.,  326.,  440.,  300.,  384.,  194.,  240.,  98.,   140.,
      276.,  368.,  542.,  692.,  614.,  776.,  686.,  860.,  580.,  704.,
      354.,  420.,  178.,  240.,  476.,  608.,  902.,  1112., 974.,  1196.,
      1046., 1280., 860.,  1024., 514.,  600.,  258.,  340.,  676.,  848.,
      1262., 1532., 1334., 1616., 1406., 1700., 1140., 1344., 674.,  780.,
      287.,  336.,  670.,  772.,  1153., 1312., 1207., 1372., 1261., 1432.,
      958.,  1076., 539.,  600.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,   10665.,  13996.,  17116.,  21035.,  25175.,  24575.,  28955.,
      28115.,  32735.,  26476.,  30364.,  22941.,  26001.,  23420.,  27500.,
      36368.,  42064.,  52100.,  59540.,  58420.,  66180.,  64740.,  72820.,
      58640.,  65360.,  49244.,  54476.,  50035.,  56575.,  75060.,  84100.,
      104525., 116225., 114425., 126525., 124325., 136825., 109940., 120260.,
      90475.,  98455.,  88255.,  96475.,  128260., 139540., 173825., 188325.,
      183725., 198625., 193625., 208925., 167620., 180180., 135415., 145075.,
      120812., 128540., 171088., 181648., 226580., 240100., 236100., 249940.,
      245620., 259780., 208208., 219792., 165068., 173948., 131625., 138285.,
      184156., 193228., 241175., 252755., 249515., 261335., 257855., 269915.,
      216220., 226060., 169713., 177237.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   251.,  455.,   383.,
      635.,   450.,   650.,   333.,   449.,   106.,   274.,  516.,   916.,
      1294.,  1990.,  1846.,  2638.,  2398.,  3286.,  2244., 2900.,  1466.,
      1826.,  706.,   1034.,  2036.,  2756.,  4054.,  5230., 4606.,  5878.,
      5158.,  6526.,  4404.,  5380.,  2706.,  3226.,  1306., 1794.,  3556.,
      4596.,  6814.,  8470.,  7366.,  9118.,  7918.,  9766., 6564.,  7860.,
      3946.,  4626.,  1906.,  2554.,  5076.,  6436.,  9574., 11710., 10126.,
      12358., 10678., 13006., 8724.,  10340., 5186.,  6026., 2201.,  2589.,
      5162.,  5970.,  8915.,  10175., 9335.,  10643., 9755., 11111., 7434.,
      8370.,  4193.,  4677.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,   83070.,   108968.,  133736.,  164290.,  197170.,  192370.,
      227170.,  220450.,  257170.,  208040.,  238952.,  180558.,  204894.,
      183400.,  215848.,  285408.,  330720.,  409560.,  468760.,  459800.,
      521560.,  510040.,  574360.,  462560.,  516064.,  388840.,  430504.,
      393890.,  445970.,  591640.,  663640.,  824750.,  917950.,  903550.,
      999950.,  982350.,  1081950., 869400.,  951640.,  715970.,  779570.,
      697970.,  763490.,  1015000., 1104920., 1376350., 1491950., 1455150.,
      1573950., 1533950., 1655950., 1328600., 1428760., 1073810., 1150850.,
      958888.,  1020520., 1358304., 1442528., 1799320., 1907160., 1875160.,
      1985560., 1951000., 2063960., 1654240., 1746656., 1311784., 1382632.,
      1046430., 1099566., 1464296., 1536680., 1917970., 2010370., 1984450.,
      2078770., 2050930., 2147170., 1720040., 1798568., 1350270., 1410318.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    174.,   220.,    764.,   826.,   2026.,  1834.,  3418.,  2842.,
      4810.,  3420.,  4988.,   2558.,  3470.,  700.,   2012.,  3768.,  6904.,
      9716.,  15188., 14036.,  20276., 18356., 25364., 17336., 22520., 11388.,
      14236., 5340.,  7932.,   15608., 21304., 31316., 40628., 35636., 45716.,
      39956., 50804., 34296.,  42040., 21148., 25276., 9980.,  13852., 27448.,
      35704., 52916., 66068.,  57236., 71156., 61556., 76244., 51256., 61560.,
      30908., 36316., 14620.,  19772., 39288., 50104., 74516., 91508., 78836.,
      96596., 83156., 101684., 68216., 81080., 40668., 47356., 17230., 20318.,
      40508., 46940., 70090.,  80122., 73402., 83818., 76714., 87514., 58556.,
      66012., 33070., 36926.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      59452.,  61360.,  63292.,  65248.,  84240.,  86848.,  89488.,  92160.,
      111620., 114960., 118340., 121760., 116340., 119760., 123220., 126720.,
      121060., 124560., 128100., 131680., 102672., 105536., 108432., 111360.,
      81436.,  83632.,  85852.,  88096.,  64989.,  66636.,  68301.,  69984.,
      90956.,  93200.,  95468.,  97760.,  119155., 122020., 124915., 127840.,
      123295., 126220., 129175., 132160., 127435., 130420., 133435., 136480.,
      106892., 109328., 111788., 114272., 83925.,  85788.,  87669.,  89568.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    9.,    16.,   10.,   24.,   42.,   64.,   43.,   76.,
      115.,  160.,  103.,  148.,  199.,  256.,  163.,  220.,  283.,  352.,
      202.,  248.,  298.,  352.,  153.,  180.,  209.,  240.,  34.,   72.,
      114.,  160.,  212.,  304.,  404.,  512.,  566.,  728.,  902.,  1088.,
      830.,  1016., 1214., 1424., 1094., 1304., 1526., 1760., 1044., 1200.,
      1364., 1536., 690.,  776.,  866.,  960.,  314.,  392.,  474.,  560.,
      932.,  1104., 1284., 1472., 1886., 2168., 2462., 2768., 2150., 2456.,
      2774., 3104., 2414., 2744., 3086., 3440., 2084., 2320., 2564., 2816.,
      1290., 1416., 1546., 1680., 594.,  712.,  834.,  960.,  1652., 1904.,
      2164., 2432., 3206., 3608., 4022., 4448., 3470., 3896., 4334., 4784.,
      3734., 4184., 4646., 5120., 3124., 3440., 3764., 4096., 1890., 2056.,
      2226., 2400., 874.,  1032., 1194., 1360., 2372., 2704., 3044., 3392.,
      4526., 5048., 5582., 6128., 4790., 5336., 5894., 6464., 5054., 5624.,
      6206., 6800., 4164., 4560., 4964., 5376., 2490., 2696., 2906., 3120.,
      1053., 1148., 1245., 1344., 2482., 2680., 2882., 3088., 4303., 4612.,
      4927., 5248., 4507., 4828., 5155., 5488., 4711., 5044., 5383., 5728.,
      3602., 3832., 4066., 4304., 2037., 2156., 2277., 2400.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      471836.,  487052.,  502460.,  518060.,  668752.,  689552.,  710608.,
      731920.,  886340.,  912980.,  939940.,  967220.,  923940.,  951220.,
      978820.,  1006740., 961540.,  989460.,  1017700., 1046260., 815696.,
      838544.,  861648.,  885008.,  647132.,  664652.,  682364.,  700268.,
      516645.,  529785.,  543069.,  556497.,  723196.,  741100.,  759196.,
      777484.,  947555.,  970415.,  993515.,  1016855., 980555.,  1003895.,
      1027475., 1051295., 1013555., 1037375., 1061435., 1085735., 850300.,
      869740.,  889372.,  909196.,  667701.,  682569.,  697581.,  712737.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,   466.,   287.,
      539.,   839.,   1187.,  743.,   1091.,  1487.,  1931.,  1199.,  1643.,
      2135.,  2675.,  1530.,  1890.,  2282.,  2706.,  1173.,  1385.,  1613.,
      1857.,  202.,   498.,   826.,   1186.,  1524.,  2244.,  3028.,  3876.,
      4222.,  5494.,  6862.,  8326.,  6286.,  7750.,  9310.,  10966., 8350.,
      10006., 11758., 13606., 8052.,  9284.,  10580., 11940., 5354.,  6034.,
      6746.,  7490.,  2362.,  2978.,  3626.,  4306.,  7124.,  8484.,  9908.,
      11396., 14542., 16774., 19102., 21526., 16606., 19030., 21550., 24166.,
      18670., 21286., 23998., 26806., 16212., 18084., 20020., 22020., 10074.,
      11074., 12106., 13170., 4522.,  5458.,  6426.,  7426.,  12724., 14724.,
      16788., 18916., 24862., 28054., 31342., 34726., 26926., 30310., 33790.,
      37366., 28990., 32566., 36238., 40006., 24372., 26884., 29460., 32100.,
      14794., 16114., 17466., 18850., 6682.,  7938.,  9226.,  10546., 18324.,
      20964., 23668., 26436., 35182., 39334., 43582., 47926., 37246., 41590.,
      46030., 50566., 39310., 43846., 48478., 53206., 32532., 35684., 38900.,
      42180., 19514., 21154., 22826., 24530., 8237.,  8993.,  9765.,  10553.,
      19466., 21042., 22650., 24290., 33815., 36275., 38783., 41339., 35423.,
      37979., 40583., 43235., 37031., 39683., 42383., 45131., 28362., 30194.,
      32058., 33954., 16061., 17009., 17973., 18953.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,  275166.,  309870.,  345726.,  405992.,  453800.,  503144.,
      554024.,  617410.,  681010.,  746530.,  813970.,  727330.,  794770.,
      864130.,  935410.,  837250.,  908530.,  981730.,  1056850., 794600.,
      854696.,  916328.,  979496.,  692622.,  739998.,  788526.,  838206.,
      694120.,  757288.,  821992.,  888232.,  1086432., 1174752., 1265120.,
      1357536., 1566040., 1681560., 1799640., 1920280., 1763800., 1884440.,
      2007640., 2133400., 1961560., 2087320., 2215640., 2346520., 1784800.,
      1889504., 1996256., 2105056., 1504360., 1585960., 1669096., 1753768.,
      1511810., 1613810., 1717730., 1823570., 2278360., 2419480., 2563160.,
      2709400., 3184750., 3367550., 3553550., 3742750., 3495950., 3685150.,
      3877550., 4073150., 3807150., 4002750., 4201550., 4403550., 3376600.,
      3538200., 3702360., 3869080., 2785730., 2910770., 3037730., 3166610.,
      2711330., 2840210., 2971010., 3103730., 3949400., 4126360., 4305880.,
      4487960., 5363150., 5590750., 5821550., 6055550., 5674350., 5908350.,
      6145550., 6385950., 5985550., 6225950., 6469550., 6716350., 5191000.,
      5388440., 5588440., 5791000., 4200290., 4352210., 4506050., 4661810.,
      3759592., 3881128., 4004200., 4128808., 5329376., 5495520., 5663712.,
      5833952., 7064280., 7277080., 7492440., 7710360., 7364440., 7582360.,
      7802840., 8025880., 7664600., 7887640., 8113240., 8341400., 6502880.,
      6685408., 6869984., 7056608., 5159656., 5299624., 5441128., 5584168.,
      4120110., 4225086., 4331214., 4438494., 5767784., 5910824., 6055400.,
      6201512., 7557730., 7740370., 7924930., 8111410., 7821250., 8007730.,
      8196130., 8386450., 8084770., 8275090., 8467330., 8661490., 6783080.,
      6938408., 7095272., 7253672., 5326830., 5445630., 5565582., 5686686.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      2074.,   4042.,   6394.,   9130.,   5626.,   8362.,   11482.,  14986.,
      9178.,   12682.,  16570.,  20842.,  11900.,  14748.,  17852.,  21212.,
      9182.,   10862.,  12670.,  14606.,  1340.,   3676.,   6268.,   9116.,
      11512.,  17208.,  23416.,  30136.,  32564.,  42644.,  53492.,  65108.,
      48884.,  60500.,  72884.,  86036.,  65204.,  78356.,  92276.,  106964.,
      63224.,  73016.,  83320.,  94136.,  42172.,  47580.,  53244.,  59164.,
      18300.,  23196.,  28348.,  33756.,  55672.,  66488.,  77816.,  89656.,
      114164., 131924., 150452., 169748., 130484., 149780., 169844., 190676.,
      146804., 167636., 189236., 211604., 127864., 142776., 158200., 174136.,
      79612.,  87580.,  95804.,  104284., 35260.,  42716.,  50428.,  58396.,
      99832.,  115768., 132216., 149176., 195764., 221204., 247412., 274388.,
      212084., 239060., 266804., 295316., 228404., 256916., 286196., 316244.,
      192504., 212536., 233080., 254136., 117052., 127580., 138364., 149404.,
      52220.,  62236.,  72508.,  83036.,  143992., 165048., 186616., 208696.,
      277364., 310484., 344372., 379028., 293684., 328340., 363764., 399956.,
      310004., 346196., 383156., 420884., 257144., 282296., 307960., 334136.,
      154492., 167580., 180924., 194524., 65150.,  71182.,  77342.,  83630.,
      154172., 166748., 179580., 192668., 268090., 287722., 307738., 328138.,
      280858., 301258., 322042., 343210., 293626., 314794., 336346., 358282.,
      225084., 239708., 254588., 269724., 127550., 135118., 142814., 150638.};
  const std::array<int, 4> in_shape = {{1, 6, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,  610.,  890.,  1010., 1130., 1250., 1144., 969.,  988.,  1500.,
      2110., 2320., 2530., 2740., 2436., 2014., 2030., 3000., 4125., 4450.,
      4775., 5100., 4450., 3620., 3470., 5000., 6725., 7050., 7375., 7700.,
      6610., 5300., 4612., 6500., 8570., 8880., 9190., 9500., 8012., 6322.,
      4956., 6910., 9020., 9290., 9560., 9830., 8212., 6423.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   10.,  20.,  30.,  34.,  31.,  20.,  11.,  35.,  74.,  130.,
      166., 161., 133., 80.,  41.,  105., 194., 310., 346., 311., 243., 140.,
      71.,  175., 314., 490., 526., 461., 353., 200., 101., 245., 434., 670.,
      706., 611., 463., 260., 105., 236., 394., 580., 606., 502., 367., 200.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,  4460.,  6565.,  7495.,  8425.,  9355.,  8612.,  7329.,
      7352.,  11232., 15880., 17520., 19160., 20800., 18560., 15392.,
      15355., 22780., 31425., 33975., 36525., 39075., 34180., 27865.,
      26635., 38460., 51825., 54375., 56925., 59475., 51140., 41065.,
      35840., 50560., 66720., 69160., 71600., 74040., 62496., 49352.,
      38739., 54044., 70585., 72715., 74845., 76975., 64340., 50349.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,   124.,  196.,  233.,  218.,  143.,  64.,   224.,
      496.,  896.,  1168., 1156., 968.,  588.,  284.,  744.,  1396., 2256.,
      2528., 2296., 1808., 1048., 504.,  1264., 2296., 3616., 3888., 3436.,
      2648., 1508., 724.,  1784., 3196., 4976., 5248., 4576., 3488., 1968.,
      789.,  1782., 2987., 4412., 4612., 3833., 2810., 1535.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,  34024.,  50330.,  57650.,  64970.,  72290.,  66760.,  56958.,
      56632.,  86816.,  123080., 136040., 149000., 161960., 144800., 120280.,
      119330., 177400., 245150., 265350., 285550., 305750., 267800., 218570.,
      208610., 301560., 406750., 426950., 447150., 467350., 402200., 323210.,
      282520., 398752., 526440., 545800., 565160., 584520., 493600., 389944.,
      306294., 427432., 558410., 575330., 592250., 609170., 509320., 398670.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,   140.,   394.,   856.,   1400.,  1714.,  1628.,  1078.,
      420.,  1576.,  3596.,  6608.,  8720.,  8732.,  7368.,  4500.,
      2100., 5576.,  10556., 17168., 19280., 17612., 13928., 8100.,
      3780., 9576.,  17516., 27728., 29840., 26492., 20488., 11700.,
      5460., 13576., 24476., 38288., 40400., 35372., 27048., 15300.,
      6110., 13836., 23242., 34392., 35960., 29938., 21980., 12022.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,  1536.,  2020.,  2440.,  3005.,  3560.,  3455.,  4040.,  3905.,
      4520.,  4355.,  5000.,  4036.,  4576.,  3453.,  3876.,  3400.,  3952.,
      5232.,  6000.,  7440.,  8440.,  8240.,  9280.,  9040.,  10120., 9840.,
      10960., 8816.,  9744.,  7336.,  8056.,  7235.,  8120.,  10780., 12000.,
      14925., 16500., 16175., 17800., 17425., 19100., 18675., 20400., 16380.,
      17800., 13385., 14480., 12755., 13880., 18460., 20000., 24925., 26900.,
      26175., 28200., 27425., 29500., 28675., 30800., 24700., 26440., 19865.,
      21200., 17392., 18448., 24560., 26000., 32440., 34280., 33640., 35520.,
      34840., 36760., 36040., 38000., 30448., 32048., 24064., 25288., 18915.,
      19824., 26404., 27640., 34505., 36080., 35555., 37160., 36605., 38240.,
      37655., 39320., 31492., 32848., 24657., 25692.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   44.,   80.,   76.,   120.,
      97.,   136.,  94.,   124.,  63.,   80.,   20.,   44.,   84.,   140.,
      200.,  296.,  376.,  520.,  504.,  664.,  512.,  644.,  436.,  532.,
      268.,  320.,  120.,  164.,  324.,  420.,  620.,  776.,  1016., 1240.,
      1144., 1384., 1052., 1244., 836.,  972.,  488.,  560.,  220.,  284.,
      564.,  700.,  1040., 1256., 1656., 1960., 1784., 2104., 1592., 1844.,
      1236., 1412., 708.,  800.,  320.,  404.,  804.,  980.,  1460., 1736.,
      2296., 2680., 2424., 2824., 2132., 2444., 1636., 1852., 928.,  1040.,
      369.,  420.,  838.,  944.,  1411., 1576., 2092., 2320., 2188., 2424.,
      1825., 2008., 1342., 1468., 735.,  800.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,   11685.,  15356.,  18668.,  22975.,  27355.,  26515.,  31135.,
      30055.,  34915.,  33595.,  38695.,  31244.,  35516.,  26805.,  30153.,
      26132.,  30500.,  40368.,  46448.,  57580.,  65500.,  63900.,  72140.,
      70220.,  78780.,  76540.,  85420.,  68720.,  76080.,  57284.,  62996.,
      56155.,  63175.,  83860.,  93540.,  116325., 128825., 126225., 139125.,
      136125., 149425., 146025., 159725., 128260., 139540., 104935., 113635.,
      99835.,  108775., 144660., 156900., 195525., 211225., 205425., 221525.,
      215325., 231825., 225225., 242125., 194180., 208020., 156295., 166915.,
      137060., 145460., 193648., 205104., 255900., 270540., 265420., 280380.,
      274940., 290220., 284460., 300060., 240432., 253168., 190100., 199844.,
      149529., 156765., 208796., 218636., 272935., 285475., 281275., 294055.,
      289615., 302635., 297955., 311215., 249260., 260060., 195213., 203457.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   292.,   564.,   532.,
      868.,   707.,   1007.,  698.,   930.,   473.,   605.,   118.,   302.,
      572.,   1004.,  1426.,  2170.,  2744.,  3864.,  3736.,  4984.,  3850.,
      4882.,  3308.,  4060.,  2046.,  2454.,  878.,   1222.,  2412.,  3164.,
      4666.,  5890.,  7704.,  9464.,  8696.,  10584., 8050.,  9562.,  6428.,
      7500.,  3766.,  4334.,  1638.,  2142.,  4252.,  5324.,  7906.,  9610.,
      12664., 15064., 13656., 16184., 12250., 14242., 9548.,  10940., 5486.,
      6214.,  2398.,  3062.,  6092.,  7484.,  11146., 13330., 17624., 20664.,
      18616., 21784., 16450., 18922., 12668., 14380., 7206.,  8094.,  2853.,
      3257.,  6498.,  7338.,  10967., 12275., 16292., 18100., 17044., 18916.,
      14243., 15695., 10490., 11490., 5753.,  6269.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,   91086.,   119656.,  145960.,  179570.,  214370.,  207650.,
      244370.,  235730.,  274370.,  263810.,  304370.,  245800.,  279784.,
      211182.,  237822.,  204808.,  239560.,  317024.,  365408.,  452920.,
      515960.,  503160.,  568760.,  553400.,  621560.,  603640.,  674360.,
      542560.,  601184.,  452680.,  498184.,  442370.,  498290.,  661400.,
      738520.,  918350.,  1017950., 997150.,  1099950., 1075950., 1181950.,
      1154750., 1263950., 1015000., 1104920., 830930.,  900290.,  789890.,
      861170.,  1145240., 1242840., 1548750., 1673950., 1627550., 1755950.,
      1706350., 1837950., 1785150., 1919950., 1539800., 1650200., 1239890.,
      1324610., 1088200., 1155208., 1537888., 1629280., 2032760., 2149560.,
      2108600., 2227960., 2184440., 2306360., 2260280., 2384760., 1910880.,
      2012512., 1511176., 1588936., 1189086., 1246830., 1660648., 1739176.,
      2171090., 2271170., 2237570., 2339570., 2304050., 2407970., 2370530.,
      2476370., 1983400., 2069608., 1553550., 1619358.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,   2026.,   2104.,   4216.,
      3960.,   6584.,   5386.,   7738.,   5372.,  7196.,   3662.,   4702.,
      780.,    2220.,   4184.,   7576.,   10724., 16580.,  20912.,  29744.,
      28720.,  38576.,  29828.,  37988.,  25752., 31704.,  15980.,  19212.,
      6700.,   9420.,   18584.,  24536.,  36164., 45860.,  59952.,  73904.,
      67760.,  82736.,  62948.,  74948.,  50392., 58904.,  29580.,  34092.,
      12620.,  16620.,  32984.,  41496.,  61604., 75140.,  98992.,  118064.,
      106800., 126896., 96068.,  111908., 75032., 86104.,  43180.,  48972.,
      18540.,  23820.,  47384.,  58456.,  87044., 104420., 138032., 162224.,
      145840., 171056., 129188., 148868., 99672., 113304., 56780.,  63852.,
      22430.,  25646.,  51164.,  57852.,  86458., 96874.,  128568., 142968.,
      134520., 149432., 112522., 124090., 82940., 90908.,  45518.,  49630.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      67492.,  69568.,  71668.,  73792.,  95408.,  98240.,  101104., 104000.,
      126140., 129760., 133420., 137120., 130860., 134560., 138300., 142080.,
      135580., 139360., 143180., 147040., 140300., 144160., 148060., 152000.,
      118640., 121792., 124976., 128192., 93844.,  96256.,  98692.,  101152.,
      73869.,  75660.,  77469.,  79296.,  103180., 105616., 108076., 110560.,
      134915., 138020., 141155., 144320., 139055., 142220., 145415., 148640.,
      143195., 146420., 149675., 152960., 147335., 150620., 153935., 157280.,
      123292., 125968., 128668., 131392., 96585.,  98628.,  100689., 102768.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    9.,    16.,    10.,   24.,   42.,    64.,    43.,   76.,
      115.,  160.,  116.,  176.,   244.,  320.,  228.,   304.,   388.,  480.,
      319.,  388.,  463.,  544.,   322.,  376.,  434.,   496.,   221.,  252.,
      285.,  320.,  38.,   80.,    126.,  176.,  236.,   336.,   444.,  560.,
      626.,  800.,  986.,  1184.,  1240., 1504., 1784.,  2080.,  1720., 2016.,
      2328., 2656., 1802., 2048.,  2306., 2576., 1564.,  1744.,  1932., 2128.,
      974.,  1072., 1174., 1280.,  398.,  480.,  566.,   656.,   1116., 1296.,
      1484., 1680., 2186., 2480.,  2786., 3104., 3640.,  4064.,  4504., 4960.,
      4120., 4576., 5048., 5536.,  3842., 4208., 4586.,  4976.,  3084., 3344.,
      3612., 3888., 1814., 1952.,  2094., 2240., 758.,   880.,   1006., 1136.,
      1996., 2256., 2524., 2800.,  3746., 4160., 4586.,  5024.,  6040., 6624.,
      7224., 7840., 6520., 7136.,  7768., 8416., 5882.,  6368.,  6866., 7376.,
      4604., 4944., 5292., 5648.,  2654., 2832., 3014.,  3200.,  1118., 1280.,
      1446., 1616., 2876., 3216.,  3564., 3920., 5306.,  5840.,  6386., 6944.,
      8440., 9184., 9944., 10720., 8920., 9696., 10488., 11296., 7922., 8528.,
      9146., 9776., 6124., 6544.,  6972., 7408., 3494.,  3712.,  3934., 4160.,
      1377., 1476., 1577., 1680.,  3146., 3352., 3562.,  3776.,  5323., 5644.,
      5971., 6304., 7924., 8368.,  8820., 9280., 8292.,  8752.,  9220., 9696.,
      6943., 7300., 7663., 8032.,  5122., 5368., 5618.,  5872.,  2813., 2940.,
      3069., 3200.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  535820.,  552380.,  569132.,  586076.,  757648.,
      780240.,  803088.,  826192.,  1001940., 1030820., 1060020., 1089540.,
      1039540., 1069060., 1098900., 1129060., 1077140., 1107300., 1137780.,
      1168580., 1114740., 1145540., 1176660., 1208100., 942864.,  968016.,
      993424.,  1019088., 745964.,  765212.,  784652.,  804284.,  587397.,
      601689.,  616125.,  630705.,  820604.,  840044.,  859676.,  879500.,
      1073155., 1097935., 1122955., 1148215., 1106155., 1131415., 1156915.,
      1182655., 1139155., 1164895., 1190875., 1217095., 1172155., 1198375.,
      1224835., 1251535., 981020.,  1002380., 1023932., 1045676., 768621.,
      784929.,  801381.,  817977.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,   466.,   287.,
      539.,   839.,   1187.,  820.,   1284.,  1812.,  2404.,  1684.,  2276.,
      2932.,  3652.,  2423.,  2963.,  3551.,  4187.,  2474.,  2898.,  3354.,
      3842.,  1709.,  1953.,  2213.,  2489.,  226.,   554.,   914.,   1306.,
      1700.,  2484.,  3332.,  4244.,  4678.,  6046.,  7510.,  9070.,  9416.,
      11496., 13704., 16040., 13192., 15528., 17992., 20584., 13942., 15886.,
      17926., 20062., 12164., 13588., 15076., 16628., 7602.,  8378.,  9186.,
      10026., 3026.,  3674.,  4354.,  5066.,  8580.,  10004., 11492., 13044.,
      16918., 19246., 21670., 24190., 28296., 31656., 35144., 38760., 32072.,
      35688., 39432., 43304., 30022., 32926., 35926., 39022., 24164., 26228.,
      28356., 30548., 14242., 15338., 16466., 17626., 5826.,  6794.,  7794.,
      8826.,  15460., 17524., 19652., 21844., 29158., 32446., 35830., 39310.,
      47176., 51816., 56584., 61480., 50952., 55848., 60872., 66024., 46102.,
      49966., 53926., 57982., 36164., 38868., 41636., 44468., 20882., 22298.,
      23746., 25226., 8626.,  9914.,  11234., 12586., 22340., 25044., 27812.,
      30644., 41398., 45646., 49990., 54430., 66056., 71976., 78024., 84200.,
      69832., 76008., 82312., 88744., 62182., 67006., 71926., 76942., 48164.,
      51508., 54916., 58388., 27522., 29258., 31026., 32826., 10821., 11609.,
      12413., 13233., 24762., 26402., 28074., 29778., 41951., 44507., 47111.,
      49763., 62516., 66052., 69652., 73316., 65428., 69092., 72820., 76612.,
      54839., 57683., 60575., 63515., 40490., 42450., 44442., 46466., 22253.,
      23265., 24293., 25337.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x6x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,  303486.,  340494.,  378654.,  446824.,  497704.,  550120.,
      604072.,  676130.,  743570.,  812930.,  884210.,  786050.,  857330.,
      930530.,  1005650., 895970.,  971090.,  1048130., 1127090., 1005890.,
      1084850., 1165730., 1248530., 941800.,  1008040., 1075816., 1145128.,
      812238.,  864222.,  917358.,  971646.,  776872.,  844648.,  913960.,
      984808.,  1209056., 1303520., 1400032., 1498592., 1734680., 1857880.,
      1983640., 2111960., 1932440., 2060760., 2191640., 2325080., 2130200.,
      2263640., 2399640., 2538200., 2327960., 2466520., 2607640., 2751320.,
      2098400., 2213344., 2330336., 2449376., 1754920., 1844200., 1935016.,
      2027368., 1700930., 1810610., 1922210., 2035730., 2551000., 2702360.,
      2856280., 3012760., 3551150., 3746750., 3945550., 4147550., 3862350.,
      4064350., 4269550., 4477950., 4173550., 4381950., 4593550., 4808350.,
      4484750., 4699550., 4917550., 5138750., 3949400., 4126360., 4305880.,
      4487960., 3238370., 3374930., 3513410., 3653810., 3071810., 3212210.,
      3354530., 3498770., 4460760., 4653080., 4847960., 5045400., 6040750.,
      6287550., 6537550., 6790750., 6351950., 6605150., 6861550., 7121150.,
      6663150., 6922750., 7185550., 7451550., 6974350., 7240350., 7509550.,
      7781950., 6023000., 6240920., 6461400., 6684440., 4855010., 5022290.,
      5191490., 5362610., 4270120., 4402408., 4536232., 4671592., 6038752.,
      6219232., 6401760., 6586336., 7986840., 8217560., 8450840., 8686680.,
      8287000., 8522840., 8761240., 9002200., 8587160., 8828120., 9071640.,
      9317720., 8887320., 9133400., 9382040., 9633240., 7517920., 7718880.,
      7921888., 8126944., 5948584., 6102376., 6257704., 6414568., 4684974.,
      4799166., 4914510., 5031006., 6545512., 6700840., 6857704., 7016104.,
      8560610., 8758610., 8958530., 9160370., 8824130., 9025970., 9229730.,
      9435410., 9087650., 9293330., 9500930., 9710450., 9351170., 9560690.,
      9772130., 9985490., 7826920., 7997608., 8169832., 8343592., 6132750.,
      6263070., 6394542., 6527166.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x6x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      2074.,   4042.,   6394.,   9130.,   6136.,   9784.,   13944.,  18616.,
      12920.,  17592.,  22776.,  28472.,  18874.,  23146.,  27802.,  32842.,
      19388.,  22748.,  26364.,  30236.,  13438.,  15374.,  17438.,  19630.,
      1500.,   4092.,   6940.,   10044.,  12856.,  19064.,  25784.,  33016.,
      36116.,  46964.,  58580.,  70964.,  73328.,  89840.,  107376., 125936.,
      103280., 121840., 141424., 162032., 109652., 125108., 141332., 158324.,
      95928.,  107256., 119096., 131448., 60060.,  66236.,  72668.,  79356.,
      23580.,  28732.,  34140.,  39804.,  67256.,  78584.,  90424.,  102776.,
      133076., 151604., 170900., 190964., 223088., 249840., 277616., 306416.,
      253040., 281840., 311664., 342512., 237332., 260468., 284372., 309044.,
      191288., 207736., 224696., 242168., 112860., 121596., 130588., 139836.,
      45660.,  53372.,  61340.,  69564.,  121656., 138104., 155064., 172536.,
      230036., 256244., 283220., 310964., 372848., 409840., 447856., 486896.,
      402800., 441840., 481904., 522992., 365012., 395828., 427412., 459764.,
      286648., 308216., 330296., 352888., 165660., 176956., 188508., 200316.,
      67740.,  78012.,  88540.,  99324.,  176056., 197624., 219704., 242296.,
      326996., 360884., 395540., 430964., 522608., 569840., 618096., 667376.,
      552560., 601840., 652144., 703472., 492692., 531188., 570452., 610484.,
      382008., 408696., 435896., 463608., 218460., 232316., 246428., 260796.,
      85790.,  92078.,  98494.,  105038., 196476., 209564., 222908., 236508.,
      333082., 353482., 374266., 395434., 496632., 524856., 553592., 582840.,
      519800., 549048., 578808., 609080., 435898., 458602., 481690., 505162.,
      321980., 337628., 353532., 369692., 177022., 185102., 193310., 201646.};
  const std::array<int, 4> in_shape = {{1, 6, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,  510.,  750.,  870.,  816.,  705.,  796.,  1220., 1730.,
      1940., 1756., 1474., 1610., 2400., 3325., 3650., 3230., 2660.,
      2690., 3900., 5275., 5600., 4850., 3920., 3770., 5400., 7225.,
      7550., 6470., 5180., 4588., 6460., 8510., 8820., 7444., 5878.,
      4710., 6570., 8580., 8850., 7404., 5799.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   7.,   10.,  13.,  10.,  9.,   29.,  39.,  49.,  59.,
      40.,  34.,  95.,  116., 137., 158., 100., 79.,  200., 221., 242.,
      263., 160., 124., 305., 326., 347., 368., 220., 143., 331., 349.,
      367., 385., 220., 105., 236., 247., 258., 269., 150.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,  3708.,  5505.,  6435.,  6084.,  5289.,  5888.,  9088.,  12960.,
      14600., 13280., 11192., 12115., 18140., 25225., 27775., 24660., 20365.,
      20575., 29900., 40525., 43075., 37380., 30265., 29035., 41660., 55825.,
      58375., 50100., 40165., 35672., 50272., 66280., 68720., 58048., 45872.,
      36807., 51372., 67125., 69255., 57972., 45429.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   42.,   62.,   82.,   67.,   52.,   184.,  256.,
      328.,  400.,  280.,  221.,  646.,  802.,  958.,  1114., 719.,
      551.,  1426., 1582., 1738., 1894., 1169., 881.,  2206., 2362.,
      2518., 2674., 1619., 1056., 2464., 2600., 2736., 2872., 1652.,
      789.,  1782., 1866., 1950., 2034., 1139.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,  28200.,  42090.,  49410.,  46920.,  40926.,  45208.,
      70048.,  100200., 113160., 103200., 87160.,  93890.,  140920.,
      196350., 216550., 192600., 159290., 160850., 234040., 317550.,
      337750., 293400., 237770., 227810., 327160., 438750., 458950.,
      394200., 316250., 281272., 396576., 523080., 542440., 458400.,
      362392., 290982., 406248., 530970., 547890., 458760., 359598.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   284.,   428.,   572.,   486.,   340.,   1288.,  1832.,
      2376.,  2920.,  2084.,  1570.,  4724.,  5924.,  7124.,  8324.,  5434.,
      4090.,  10724., 11924., 13124., 14324., 8914.,  6610.,  16724., 17924.,
      19124., 20324., 12394., 8100.,  18984., 20040., 21096., 22152., 12788.,
      6110.,  13836., 14492., 15148., 15804., 8870.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,  1272.,  1668.,  2040.,  2505.,  3000.,  2955.,  3480.,  2820.,
      3264.,  2469.,  2820.,  2704.,  3184.,  4208.,  4880.,  6040.,  6920.,
      6840.,  7760.,  6256.,  7024.,  5296.,  5896.,  5675.,  6440.,  8540.,
      9600.,  11925., 13300., 13175., 14600., 11740., 12920., 9725.,  10640.,
      9815.,  10760., 14300., 15600., 19425., 21100., 20675., 22400., 17980.,
      19400., 14585., 15680., 13955., 15080., 20060., 21600., 26925., 28900.,
      28175., 30200., 24220., 25880., 19445., 20720., 17320., 18352., 24432.,
      25840., 32240., 34040., 33440., 35280., 28272., 29776., 22360., 23512.,
      17967., 18840., 25092., 26280., 32805., 34320., 33855., 35400., 28356.,
      29616., 22233., 23196.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   14.,   28.,  22.,  40.,   30.,   52.,   27.,
      40.,   16.,   36.,   68.,   116.,  100., 156., 132.,  196.,  164.,  236.,
      120.,  160.,  85.,   136.,  266.,  380., 338., 464.,  410.,  548.,  482.,
      632.,  319.,  400.,  235.,  316.,  626., 800., 698.,  884.,  770.,  968.,
      842.,  1052., 529.,  640.,  385.,  496., 986., 1220., 1058., 1304., 1130.,
      1388., 1202., 1472., 739.,  880.,  484., 572., 1140., 1324., 1204., 1396.,
      1268., 1468., 1332., 1540., 772.,  880., 369., 420.,  838.,  944.,  878.,
      988.,  918.,  1032., 958.,  1076., 539., 600.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,   9645.,   12636.,  15564.,  19095.,  22995.,  22635.,  26775.,
      21708.,  25212.,  19077.,  21849.,  20708.,  24500.,  32368.,  37680.,
      46620.,  53580.,  52940.,  60220.,  48560.,  54640.,  41204.,  45956.,
      43915.,  49975.,  66260.,  74660.,  92725.,  103625., 102625., 113925.,
      91620.,  100980., 76015.,  83275.,  76675.,  84175.,  111860., 122180.,
      152125., 165425., 162025., 175725., 141060., 152340., 114535., 123235.,
      109435., 118375., 157460., 169700., 211525., 227225., 221425., 237525.,
      190500., 203700., 153055., 163195., 136532., 144740., 192688., 203888.,
      254380., 268700., 263900., 278540., 223216., 235184., 176612., 185780.,
      142017., 148965., 198396., 207852., 259455., 271515., 267795., 280095.,
      224364., 234396., 175965., 183633.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    25.,   34.,   106.,   90.,   194.,   146.,  282.,   202.,   370.,
      193.,  293.,  94.,   246.,   460.,  828.,   700.,  1132.,  940.,   1436.,
      1180., 1740., 886.,  1198.,  587.,  983.,   1918., 2806.,  2470.,  3454.,
      3022., 4102., 3574., 4750.,  2399., 3035.,  1727., 2363.,  4678.,  6046.,
      5230., 6694., 5782., 7342.,  6334., 7990.,  4019., 4895.,  2867.,  3743.,
      7438., 9286., 7990., 9934.,  8542., 10582., 9094., 11230., 5639.,  6755.,
      3702., 4398., 8764., 10220., 9260., 10780., 9756., 11340., 10252., 11900.,
      5966., 6822., 2853., 3257.,  6498., 7338.,  6810., 7682.,  7122.,  8026.,
      7434., 8370., 4193., 4677.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,   75054.,   98280.,   121512.,  149010.,  179970.,  177090.,
      209970.,  170280.,  198120.,  149934.,  171966.,  161992.,  192136.,
      253792.,  296032.,  366200.,  421560.,  416440.,  474360.,  382560.,
      430944.,  325000.,  362824.,  345410.,  393650.,  521880.,  588760.,
      731150.,  817950.,  809950.,  899950.,  723800.,  798360.,  601010.,
      658850.,  606050.,  665810.,  884760.,  967000.,  1203950., 1309950.,
      1282750., 1391950., 1117400., 1207320., 907730.,  977090.,  866690.,
      937970.,  1247640., 1345240., 1676750., 1801950., 1755550., 1883950.,
      1511000., 1616280., 1214450., 1295330., 1084168., 1149640., 1530464.,
      1619808., 2020920., 2135160., 2096760., 2213560., 1773920., 1869408.,
      1403848., 1477000., 1129278., 1184718., 1577832., 1653288., 2063730.,
      2159970., 2130210., 2228370., 1785000., 1865064., 1400142., 1461342.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    174.,   220.,   764.,   636.,   1436.,  1052.,  2108.,  1468.,
      2780.,  1454.,  2238.,  620.,   1804.,  3352.,  6232.,  5208.,  8600.,
      7064.,  10968., 8920.,  13336., 6796.,  9260.,  4330.,  7450.,  14516.,
      21524., 18836., 26612., 23156., 31700., 27476., 36788., 18586., 23626.,
      13210., 18250., 36116., 46964., 40436., 52052., 44756., 57140., 49076.,
      62228., 31306., 38266., 22090., 29050., 57716., 72404., 62036., 77492.,
      66356., 82580., 70676., 87668., 44026., 52906., 28940., 34476., 68696.,
      80280., 72600., 84696., 76504., 89112., 80408., 93528., 46892., 53708.,
      22430., 25646., 51164., 57852., 53628., 60572., 56092., 63292., 58556.,
      66012., 33070., 36926.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      53615.,  55820.,  58055.,  60320.,  77220.,  80240.,  83300.,  86400.,
      103825., 107700., 111625., 115600., 108725., 112700., 116725., 120800.,
      93620.,  96880.,  100180., 103520., 75275.,  77780.,  80315.,  82880.,
      67252.,  69280.,  71332.,  73408.,  94960.,  97728.,  100528., 103360.,
      125420., 128960., 132540., 136160., 130140., 133760., 137420., 141120.,
      110128., 113088., 116080., 119104., 87172.,  89440.,  91732.,  94048.,
      70149.,  71868.,  73605.,  75360.,  98028.,  100368., 102732., 105120.,
      128235., 131220., 134235., 137280., 132375., 135420., 138495., 141600.,
      110940., 113424., 115932., 118464., 87033.,  88932.,  90849.,  92784.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    9.,    16.,   10.,   24.,   42.,   64.,   34.,   56.,
      82.,   112.,  58.,   88.,   122.,  160.,  82.,   120.,  162.,  208.,
      85.,   108.,  133.,  160.,  30.,   64.,   102.,  144.,  188.,  272.,
      364.,  464.,  300.,  400.,  508.,  624.,  412.,  528.,  652.,  784.,
      524.,  656.,  796.,  944.,  406.,  480.,  558.,  640.,  247.,  340.,
      439.,  544.,  854.,  1064., 1286., 1520., 1118., 1352., 1598., 1856.,
      1382., 1640., 1910., 2192., 1646., 1928., 2222., 2528., 1123., 1276.,
      1435., 1600., 787.,  940.,  1099., 1264., 2174., 2504., 2846., 3200.,
      2438., 2792., 3158., 3536., 2702., 3080., 3470., 3872., 2966., 3368.,
      3782., 4208., 1903., 2116., 2335., 2560., 1327., 1540., 1759., 1984.,
      3494., 3944., 4406., 4880., 3758., 4232., 4718., 5216., 4022., 4520.,
      5030., 5552., 4286., 4808., 5342., 5888., 2683., 2956., 3235., 3520.,
      1766., 1936., 2110., 2288., 4204., 4560., 4924., 5296., 4444., 4816.,
      5196., 5584., 4684., 5072., 5468., 5872., 4924., 5328., 5740., 6160.,
      2878., 3088., 3302., 3520., 1377., 1476., 1577., 1680., 3146., 3352.,
      3562., 3776., 3298., 3512., 3730., 3952., 3450., 3672., 3898., 4128.,
      3602., 3832., 4066., 4304., 2037., 2156., 2277., 2400.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,   31353.,   35421.,   39633.,   46332.,   51948.,   57756.,
      63756.,   70755.,   78255.,   85995.,   93975.,   84555.,   92535.,
      100755.,  109215.,  81756.,   88524.,   95484.,   102636.,  72285.,
      77649.,   83157.,   88809.,   77324.,   84668.,   92204.,   99932.,
      121744.,  132048.,  142608.,  153424.,  176340.,  189860.,  203700.,
      217860.,  201140.,  215300.,  229780.,  244580.,  185360.,  197200.,
      209296.,  221648.,  157868.,  167132.,  176588.,  186236.,  166795.,
      178615.,  190675.,  202975.,  252740.,  269140.,  285860.,  302900.,
      354925.,  376225.,  397925.,  420025.,  393925.,  416025.,  438525.,
      461425.,  352740.,  371060.,  389700.,  408660.,  293395.,  307615.,
      322075.,  336775.,  295675.,  310375.,  325315.,  340495.,  432260.,
      452500.,  473060.,  493940.,  588925.,  615025.,  641525.,  668425.,
      627925.,  654825.,  682125.,  709825.,  547620.,  569780.,  592260.,
      615060.,  445315.,  462415.,  479755.,  497335.,  424555.,  442135.,
      459955.,  478015.,  611780.,  635860.,  660260.,  684980.,  822925.,
      853825.,  885125.,  916825.,  861925.,  893625.,  925725.,  958225.,
      742500.,  768500.,  794820.,  821460.,  597235.,  617215.,  637435.,
      657895.,  533996.,  550172.,  566540.,  583100.,  754192.,  776272.,
      798608.,  821200.,  996340.,  1024580., 1053140., 1082020., 1033940.,
      1062820., 1092020., 1121540., 875152.,  898768.,  922640.,  946768.,
      692876.,  710972.,  729260.,  747740.,  557781.,  571497.,  585357.,
      599361.,  779580.,  798252.,  817116.,  836172.,  1019955., 1043775.,
      1067835., 1092135., 1052955., 1077255., 1101795., 1126575., 882588.,
      902412.,  922428.,  942636.,  692493.,  707649.,  722949.,  738393.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,   466.,   234.,
      402.,   602.,   834.,   410.,   642.,   906.,   1202.,  586.,   882.,
      1210.,  1570.,  637.,   817.,   1013.,  1225.,  178.,   442.,   738.,
      1066.,  1348.,  2004.,  2724.,  3508.,  2212.,  2996.,  3844.,  4756.,
      3076.,  3988.,  4964.,  6004.,  3940.,  4980.,  6084.,  7252.,  3106.,
      3690.,  4306.,  4954.,  1799.,  2531.,  3311.,  4139.,  6430.,  8086.,
      9838.,  11686., 8494.,  10342., 12286., 14326., 10558., 12598., 14734.,
      16966., 12622., 14854., 17182., 19606., 8687.,  9899.,  11159., 12467.,
      5999.,  7211.,  8471.,  9779.,  16750., 19366., 22078., 24886., 18814.,
      21622., 24526., 27526., 20878., 23878., 26974., 30166., 22942., 26134.,
      29422., 32806., 14807., 16499., 18239., 20027., 10199., 11891., 13631.,
      15419., 27070., 30646., 34318., 38086., 29134., 32902., 36766., 40726.,
      31198., 35158., 39214., 43366., 33262., 37414., 41662., 46006., 20927.,
      23099., 25319., 27587., 13794., 15146., 16530., 17946., 32932., 35764.,
      38660., 41620., 34820., 37780., 40804., 43892., 36708., 39796., 42948.,
      46164., 38596., 41812., 45092., 48436., 22610., 24282., 25986., 27722.,
      10821., 11609., 12413., 13233., 24762., 26402., 28074., 29778., 25962.,
      27666., 29402., 31170., 27162., 28930., 30730., 32562., 28362., 30194.,
      32058., 33954., 16061., 17009., 17973., 18953.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,  246846.,  279246.,  312798.,  365160.,  409896.,  456168.,
      503976.,  558690.,  618450.,  680130.,  743730.,  668610.,  732210.,
      797730.,  865170.,  647400.,  701352.,  756840.,  813864.,  573006.,
      615774.,  659694.,  704766.,  611368.,  669928.,  730024.,  791656.,
      963808.,  1045984., 1130208., 1216480., 1397400., 1505240., 1615640.,
      1728600., 1595160., 1708120., 1823640., 1941720., 1471200., 1565664.,
      1662176., 1760736., 1253800., 1327720., 1403176., 1480168., 1322690.,
      1417010., 1513250., 1611410., 2005720., 2136600., 2270040., 2406040.,
      2818350., 2988350., 3161550., 3337950., 3129550., 3305950., 3485550.,
      3668350., 2803800., 2950040., 3098840., 3250200., 2333090., 2446610.,
      2562050., 2679410., 2350850., 2468210., 2587490., 2708690., 3438040.,
      3599640., 3763800., 3930520., 4685550., 4893950., 5105550., 5320350.,
      4996750., 5211550., 5429550., 5650750., 4359000., 4535960., 4715480.,
      4897560., 3545570., 3682130., 3820610., 3961010., 3379010., 3519410.,
      3661730., 3805970., 4870360., 5062680., 5257560., 5455000., 6552750.,
      6799550., 7049550., 7302750., 6863950., 7117150., 7373550., 7633150.,
      5914200., 6121880., 6332120., 6544920., 4758050., 4917650., 5079170.,
      5242610., 4255912., 4385128., 4515880., 4648168., 6011616., 6188000.,
      6366432., 6546912., 7942680., 8168280., 8396440., 8627160., 8242840.,
      8473560., 8706840., 8942680., 6977760., 7166432., 7357152., 7549920.,
      5525032., 5669608., 5815720., 5963368., 4448622., 4558206., 4668942.,
      4780830., 6218088., 6367272., 6517992., 6670248., 8135970., 8326290.,
      8518530., 8712690., 8399490., 8593650., 8789730., 8987730., 7041000.,
      7199400., 7359336., 7520808., 5524878., 5645982., 5768238., 5891646.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      1724.,   3036.,   4604.,   6428.,   3068.,   4892.,   6972.,   9308.,
      4412.,   6748.,   9340.,   12188.,  4926.,   6350.,   7902.,   9582.,
      1180.,   3260.,   5596.,   8188.,   10168.,  15352.,  21048.,  27256.,
      16952.,  23160.,  29880.,  37112.,  23736.,  30968.,  38712.,  46968.,
      30520.,  38776.,  47544.,  56824.,  24284.,  28924.,  33820.,  38972.,
      13690.,  19498.,  25690.,  32266.,  49844.,  62996.,  76916.,  91604.,
      66164.,  80852.,  96308.,  112532., 82484.,  98708.,  115700., 133460.,
      98804.,  116564., 135092., 154388., 68314.,  77962.,  87994.,  98410.,
      46810.,  56458.,  66490.,  76906.,  131444., 152276., 173876., 196244.,
      147764., 170132., 193268., 217172., 164084., 187988., 212660., 238100.,
      180404., 205844., 232052., 259028., 116794., 130282., 144154., 158410.,
      79930.,  93418.,  107290., 121546., 213044., 241556., 270836., 300884.,
      229364., 259412., 290228., 321812., 245684., 277268., 309620., 342740.,
      262004., 295124., 329012., 363668., 165274., 182602., 200314., 218410.,
      109020., 119804., 130844., 142140., 260664., 283256., 306360., 329976.,
      275640., 299256., 323384., 348024., 290616., 315256., 340408., 366072.,
      305592., 331256., 357432., 384120., 179228., 192572., 206172., 220028.,
      85790.,  92078.,  98494.,  105038., 196476., 209564., 222908., 236508.,
      206012., 219612., 233468., 247580., 215548., 229660., 244028., 258652.,
      225084., 239708., 254588., 269724., 127550., 135118., 142814., 150638.};
  const std::array<int, 4> in_shape = {{1, 7, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,  560.,  820.,  940.,  1060., 980.,   837.,   892.,  1360.,  1920.,
      2130., 2340., 2096., 1744., 1820., 2700.,  3725.,  4050., 4375.,  3840.,
      3140., 3080., 4450., 6000., 6325., 6650.,  5730.,  4610., 4340.,  6200.,
      8275., 8600., 8925., 7620., 6080., 5296.,  7440.,  9780., 10090., 10400.,
      8752., 6892., 5445., 7580., 9880., 10150., 10420., 8696., 6795.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   10.,  16.,  22.,  22.,  15.,  10.,  32.,  68.,
      89.,  110., 96.,  60.,  42.,  114., 219., 264., 309., 252.,
      150., 102., 249., 444., 489., 534., 417., 240., 162., 384.,
      669., 714., 759., 582., 330., 196., 440., 734., 773., 812.,
      600., 330., 147., 322., 526., 550., 574., 416., 225.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,  4084.,  6035.,  6965.,  7895.,  7348.,  6309.,  6620.,  10160.,
      14420., 16060., 17700., 15920., 13292., 13735., 20460., 28325., 30875.,
      33425., 29420., 24115., 23605., 34180., 46175., 48725., 51275., 44260.,
      35665., 33475., 47900., 64025., 66575., 69125., 59100., 47215., 41228.,
      57968., 76260., 78700., 81140., 68336., 53852., 42597., 59332., 77375.,
      79505., 81635., 68164., 53289.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,   101.,  143.,  150.,  105.,  58.,   204.,  454.,
      610.,  766.,  684.,  434.,  279.,  786.,  1545., 1887., 2229., 1842.,
      1107., 729.,  1806., 3255., 3597., 3939., 3102., 1797., 1179., 2826.,
      4965., 5307., 5649., 4362., 2487., 1474., 3324., 5566., 5866., 6166.,
      4572., 2522., 1121., 2462., 4031., 4217., 4403., 3198., 1733.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,  31112.,  46210.,  53530.,  60850.,  56840.,  48942.,
      50920.,  78432.,  111640., 124600., 137560., 124000., 103720.,
      106610., 159160., 220750., 240950., 261150., 230200., 188930.,
      184730., 267800., 362150., 382350., 402550., 347800., 280490.,
      262850., 376440., 503550., 523750., 543950., 465400., 372050.,
      325288., 457568., 602200., 621560., 640920., 540000., 425704.,
      336942., 469448., 612370., 629290., 646210., 539720., 422046.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   706.,   1018.,  1100.,  782.,   380.,   1432.,
      3284.,  4484.,  5684.,  5144.,  3292.,  2010.,  5796.,  11550., 14214.,
      16878., 14052., 8490.,  5490.,  13716., 24870., 27534., 30198., 23892.,
      13890., 8970.,  21636., 38190., 40854., 43518., 33732., 19290., 11420.,
      25816., 43316., 45668., 48020., 35672., 19708., 8750.,  19244., 31546.,
      33010., 34474., 25068., 13598.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,  1404.,  1844.,  2240.,  2755.,  3280.,  3205.,  3760.,  3655.,
      4240.,  3428.,  3920.,  2961.,  3348.,  3052.,  3568.,  4720.,  5440.,
      6740.,  7680.,  7540.,  8520.,  8340.,  9360.,  7536.,  8384.,  6316.,
      6976.,  6455.,  7280.,  9660.,  10800., 13425., 14900., 14675., 16200.,
      15925., 17500., 14060., 15360., 11555., 12560., 11285., 12320., 16380.,
      17800., 22175., 24000., 23425., 25300., 24675., 26600., 21340., 22920.,
      17225., 18440., 16115., 17360., 23100., 24800., 30925., 33100., 32175.,
      34400., 33425., 35700., 28620., 30480., 22895., 24320., 20044., 21184.,
      28208., 29760., 37140., 39120., 38340., 40360., 39540., 41600., 33328.,
      35008., 26284., 27568., 20817., 21780., 29012., 30320., 37855., 39520.,
      38905., 40600., 39955., 41680., 33380., 34784., 26109., 27180.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   37.,   64.,   55.,   88.,
      62.,   88.,   45.,   60.,   18.,   40.,   76.,   128.,  182.,  272.,
      254.,  356.,  326.,  440.,  300.,  384.,  194.,  240.,  111.,  168.,
      330.,  456.,  669.,  876.,  831.,  1056., 993.,  1236., 834.,  1008.,
      507.,  600.,  321.,  408.,  810.,  996.,  1479., 1776., 1641., 1956.,
      1803., 2136., 1434., 1668., 837.,  960.,  531.,  648.,  1290., 1536.,
      2289., 2676., 2451., 2856., 2613., 3036., 2034., 2328., 1167., 1320.,
      690.,  784.,  1564., 1760., 2630., 2936., 2774., 3092., 2918., 3248.,
      2172., 2400., 1202., 1320., 533.,  588.,  1174., 1288., 1927., 2104.,
      2017., 2200., 2107., 2296., 1534., 1664., 833.,  900.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,   10665.,  13996.,  17116.,  21035.,  25175.,  24575.,  28955.,
      28115.,  32735.,  26476.,  30364.,  22941.,  26001.,  23420.,  27500.,
      36368.,  42064.,  52100.,  59540.,  58420.,  66180.,  64740.,  72820.,
      58640.,  65360.,  49244.,  54476.,  50035.,  56575.,  75060.,  84100.,
      104525., 116225., 114425., 126525., 124325., 136825., 109940., 120260.,
      90475.,  98455.,  88255.,  96475.,  128260., 139540., 173825., 188325.,
      183725., 198625., 193625., 208925., 167620., 180180., 135415., 145075.,
      126475., 136375., 181460., 194980., 243125., 260425., 253025., 270725.,
      262925., 281025., 225300., 240100., 180355., 191695., 158108., 167180.,
      222608., 234960., 293220., 308980., 302740., 318820., 312260., 328660.,
      263312., 276688., 207740., 217964., 164637., 172305., 229516., 239932.,
      299555., 312815., 307895., 321395., 316235., 329975., 264268., 275452.,
      206757., 215289.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   251.,   455.,   383.,
      635.,   450.,   650.,   333.,   449.,   106.,   274.,   516.,   916.,
      1294.,  1990.,  1846.,  2638.,  2398.,  3286.,  2244.,  2900.,  1466.,
      1826.,  783.,   1227.,  2406.,  3390.,  4965.,  6585.,  6225.,  7989.,
      7485.,  9393.,  6342.,  7710.,  3879.,  4611.,  2403.,  3087.,  6126.,
      7590.,  11265., 13605., 12525., 15009., 13785., 16413., 11022., 12870.,
      6459.,  7431.,  4023.,  4947.,  9846.,  11790., 17565., 20625., 18825.,
      22029., 20085., 23433., 15702., 18030., 9039.,  10251., 5338.,  6082.,
      12132., 13684., 20446., 22870., 21574., 24094., 22702., 25318., 16932.,
      18740., 9386.,  10322., 4157.,  4593.,  9170.,  10074., 15071., 16475.,
      15779., 17231., 16487., 17987., 12018., 13050., 6533.,  7065.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,   83070.,   108968.,  133736.,  164290.,  197170.,  192370.,
      227170.,  220450.,  257170.,  208040.,  238952.,  180558.,  204894.,
      183400.,  215848.,  285408.,  330720.,  409560.,  468760.,  459800.,
      521560.,  510040.,  574360.,  462560.,  516064.,  388840.,  430504.,
      393890.,  445970.,  591640.,  663640.,  824750.,  917950.,  903550.,
      999950.,  982350.,  1081950., 869400.,  951640.,  715970.,  779570.,
      697970.,  763490.,  1015000., 1104920., 1376350., 1491950., 1455150.,
      1573950., 1533950., 1655950., 1328600., 1428760., 1073810., 1150850.,
      1002050., 1081010., 1438360., 1546200., 1927950., 2065950., 2006750.,
      2147950., 2085550., 2229950., 1787800., 1905880., 1431650., 1522130.,
      1255912., 1328296., 1768672., 1867232., 2330200., 2455960., 2406040.,
      2534360., 2481880., 2612760., 2093280., 2200032., 1651816., 1733416.,
      1309518., 1370718., 1825832., 1908968., 2383330., 2489170., 2449810.,
      2557570., 2516290., 2625970., 2103080., 2192360., 1645614., 1713726.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   1834.,   3418.,
      2842.,   4810.,   3420.,   4988.,   2558.,   3470.,   700.,    2012.,
      3768.,   6904.,   9716.,   15188.,  14036.,  20276.,  18356.,  25364.,
      17336.,  22520.,  11388.,  14236.,  5850.,   9354.,   18324.,  26100.,
      38190.,  51006.,  48126.,  62094.,  58062.,  73182.,  49428.,  60276.,
      30330.,  36138.,  18570.,  23994.,  47604.,  59220.,  87870.,  106446.,
      97806.,  117534., 107742., 128622., 86388.,  101076., 50730.,  58458.,
      31290.,  38634.,  76884.,  92340.,  137550., 161886., 147486., 172974.,
      157422., 184062., 123348., 141876., 71130.,  80778.,  41980.,  47900.,
      95544.,  107896., 161204., 180500., 170132., 190196., 179060., 199892.,
      133688., 148088., 74172.,  81628.,  32830.,  36302.,  72476.,  79676.,
      119194., 130378., 124810., 136378., 130426., 142378., 95132.,  103356.,
      51742.,  55982.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      62015.,  64460.,  66935.,  69440.,  89060.,  92400.,  95780.,  99200.,
      119425., 123700., 128025., 132400., 124325., 128700., 133125., 137600.,
      129225., 133700., 138225., 142800., 110820., 114480., 118180., 121920.,
      88775.,  91580.,  94415.,  97280.,  77932.,  80176.,  82444.,  84736.,
      109776., 112832., 115920., 119040., 144660., 148560., 152500., 156480.,
      149380., 153360., 157380., 161440., 154100., 158160., 162260., 166400.,
      130000., 133312., 136656., 140032., 102604., 105136., 107692., 110272.,
      81369.,  83268.,  85185.,  87120.,  113468., 116048., 118652., 121280.,
      148135., 151420., 154735., 158080., 152275., 155620., 158995., 162400.,
      156415., 159820., 163255., 166720., 130748., 133520., 136316., 139136.,
      102321., 104436., 106569., 108720.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   103.,   148.,   199.,   256.,   163.,   220.,
      283.,   352.,   202.,   248.,   298.,   352.,   153.,   180.,   209.,
      240.,   34.,    72.,    114.,   160.,   212.,   304.,   404.,   512.,
      566.,   728.,   902.,   1088.,  830.,   1016.,  1214.,  1424.,  1094.,
      1304.,  1526.,  1760.,  1044.,  1200.,  1364.,  1536.,  690.,   776.,
      866.,   960.,   339.,   444.,   555.,   672.,   1086.,  1320.,  1566.,
      1824.,  2289.,  2676.,  3081.,  3504.,  2901.,  3324.,  3765.,  4224.,
      3513.,  3972.,  4449.,  4944.,  3006.,  3336.,  3678.,  4032.,  1851.,
      2028.,  2211.,  2400.,  1119.,  1284.,  1455.,  1632.,  2886.,  3240.,
      3606.,  3984.,  5349.,  5916.,  6501.,  7104.,  5961.,  6564.,  7185.,
      7824.,  6573.,  7212.,  7869.,  8544.,  5286.,  5736.,  6198.,  6672.,
      3111.,  3348.,  3591.,  3840.,  1899.,  2124.,  2355.,  2592.,  4686.,
      5160.,  5646.,  6144.,  8409.,  9156.,  9921.,  10704., 9021.,  9804.,
      10605., 11424., 9633.,  10452., 11289., 12144., 7566.,  8136.,  8718.,
      9312.,  4371.,  4668.,  4971.,  5280.,  2578.,  2760.,  2946.,  3136.,
      5876.,  6256.,  6644.,  7040.,  9926.,  10520., 11126., 11744., 10478.,
      11096., 11726., 12368., 11030., 11672., 12326., 12992., 8244.,  8688.,
      9140.,  9600.,  4578.,  4808.,  5042.,  5280.,  2025.,  2132.,  2241.,
      2352.,  4474.,  4696.,  4922.,  5152.,  7363.,  7708.,  8059.,  8416.,
      7711.,  8068.,  8431.,  8800.,  8059.,  8428.,  8803.,  9184.,  5882.,
      6136.,  6394.,  6656.,  3201.,  3332.,  3465.,  3600.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      491275.,  510775.,  530515.,  550495.,  705860.,  732500.,  759460.,
      786740.,  946925.,  981025.,  1015525., 1050425., 985925.,  1020825.,
      1056125., 1091825., 1024925., 1060625., 1096725., 1133225., 879300.,
      908500.,  938020.,  967860.,  704635.,  727015.,  749635.,  772495.,
      619004.,  636908.,  655004.,  673292.,  872144.,  896528.,  921168.,
      946064.,  1149540., 1180660., 1212100., 1243860., 1187140., 1218900.,
      1250980., 1283380., 1224740., 1257140., 1289860., 1322900., 1033424.,
      1059856., 1086544., 1113488., 815804.,  836012.,  856412.,  877004.,
      647181.,  662337.,  677637.,  693081.,  902620.,  923212.,  943996.,
      964972.,  1178555., 1204775., 1231235., 1257935., 1211555., 1238255.,
      1265195., 1292375., 1244555., 1271735., 1299155., 1326815., 1040476.,
      1062604., 1084924., 1107436., 814365.,  831249.,  848277.,  865449.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,    466.,   287.,
      539.,   839.,   1187.,  743.,   1091.,  1487.,  1931.,   1199.,  1643.,
      2135.,  2675.,  1530.,  1890.,  2282.,  2706.,  1173.,   1385.,  1613.,
      1857.,  202.,   498.,   826.,   1186.,  1524.,  2244.,   3028.,  3876.,
      4222.,  5494.,  6862.,  8326.,  6286.,  7750.,  9310.,   10966., 8350.,
      10006., 11758., 13606., 8052.,  9284.,  10580., 11940.,  5354.,  6034.,
      6746.,  7490.,  2511.,  3339.,  4215.,  5139.,  8238.,   10086., 12030.,
      14070., 17565., 20625., 23829., 27177., 22389., 25737.,  29229., 32865.,
      27213., 30849., 34629., 38553., 23406., 26022., 28734.,  31542., 14463.,
      15867., 17319., 18819., 8631.,  9939.,  11295., 12699.,  22398., 25206.,
      28110., 31110., 41685., 46185., 50829., 55617., 46509.,  51297., 56229.,
      61305., 51333., 56409., 61629., 66993., 41406., 44982.,  48654., 52422.,
      24423., 26307., 28239., 30219., 14751., 16539., 18375.,  20259., 36558.,
      40326., 44190., 48150., 65805., 71745., 77829., 84057.,  70629., 76857.,
      83229., 89745., 75453., 81969., 88629., 95433., 59406.,  63942., 68574.,
      73302., 34383., 36747., 39159., 41619., 20266., 21714.,  23194., 24706.,
      46260., 49284., 52372., 55524., 78238., 82966., 87790.,  92710., 82606.,
      87526., 92542., 97654., 86974., 92086., 97294., 102598., 65076., 68612.,
      72212., 75876., 36170., 38002., 39866., 41762., 15989.,  16841., 17709.,
      18593., 35354., 37122., 38922., 40754., 58223., 60971.,  63767., 66611.,
      60983., 63827., 66719., 69659., 63743., 66683., 69671.,  72707., 46554.,
      48578., 50634., 52722., 25349., 26393., 27453., 28529.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,   275166.,   309870.,   345726.,   405992.,  453800.,
      503144.,   554024.,   617410.,   681010.,   746530.,  813970.,
      727330.,   794770.,   864130.,   935410.,   837250.,  908530.,
      981730.,   1056850.,  794600.,   854696.,   916328.,  979496.,
      692622.,   739998.,   788526.,   838206.,   694120.,  757288.,
      821992.,   888232.,   1086432.,  1174752.,  1265120., 1357536.,
      1566040.,  1681560.,  1799640.,  1920280.,  1763800., 1884440.,
      2007640.,  2133400.,  1961560.,  2087320.,  2215640., 2346520.,
      1784800.,  1889504.,  1996256.,  2105056.,  1504360., 1585960.,
      1669096.,  1753768.,  1511810.,  1613810.,  1717730., 1823570.,
      2278360.,  2419480.,  2563160.,  2709400.,  3184750., 3367550.,
      3553550.,  3742750.,  3495950.,  3685150.,  3877550., 4073150.,
      3807150.,  4002750.,  4201550.,  4403550.,  3376600., 3538200.,
      3702360.,  3869080.,  2785730.,  2910770.,  3037730., 3166610.,
      2711330.,  2840210.,  2971010.,  3103730.,  3949400., 4126360.,
      4305880.,  4487960.,  5363150.,  5590750.,  5821550., 6055550.,
      5674350.,  5908350.,  6145550.,  6385950.,  5985550., 6225950.,
      6469550.,  6716350.,  5191000.,  5388440.,  5588440., 5791000.,
      4200290.,  4352210.,  4506050.,  4661810.,  3910850., 4066610.,
      4224290.,  4383890.,  5620440.,  5833240.,  6048600., 6266520.,
      7541550.,  7813950.,  8089550.,  8368350.,  7852750., 8131550.,
      8413550.,  8698750.,  8163950.,  8449150.,  8737550., 9029150.,
      7005400.,  7238680.,  7474520.,  7712920.,  5614850., 5793650.,
      5974370.,  6157010.,  4934248.,  5077288.,  5221864., 5367976.,
      6952928.,  7147744.,  7344608.,  7543520.,  9165400., 9414040.,
      9665240.,  9919000.,  9465560.,  9719320.,  9975640., 10234520.,
      9765720.,  10024600., 10286040., 10550040., 8241120., 8452320.,
      8665568.,  8880864.,  6506344.,  6667816.,  6830824., 6995368.,
      5162382.,  5283486.,  5405742.,  5529150.,  7200488., 7365032.,
      7531112.,  7698728.,  9402370.,  9611890.,  9823330., 10036690.,
      9665890.,  9879250.,  10094530., 10311730., 9929410., 10146610.,
      10365730., 10586770., 8301800.,  8478632.,  8657000., 8836904.,
      6498126.,  6633054.,  6769134.,  6906366.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      2074.,   4042.,   6394.,   9130.,   5626.,   8362.,   11482.,  14986.,
      9178.,   12682.,  16570.,  20842.,  11900.,  14748.,  17852.,  21212.,
      9182.,   10862.,  12670.,  14606.,  1340.,   3676.,   6268.,   9116.,
      11512.,  17208.,  23416.,  30136.,  32564.,  42644.,  53492.,  65108.,
      48884.,  60500.,  72884.,  86036.,  65204.,  78356.,  92276.,  106964.,
      63224.,  73016.,  83320.,  94136.,  42172.,  47580.,  53244.,  59164.,
      19290.,  25866.,  32826.,  40170.,  64116.,  78804.,  94260.,  110484.,
      137550., 161886., 187374., 214014., 175854., 202494., 230286., 259230.,
      214158., 243102., 273198., 304446., 184692., 205524., 227124., 249492.,
      114330., 125514., 137082., 149034., 67770.,  78186.,  88986.,  100170.,
      176436., 198804., 221940., 245844., 329070., 364926., 401934., 440094.,
      367374., 405534., 444846., 485310., 405678., 446142., 487758., 530526.,
      327732., 356244., 385524., 415572., 193530., 208554., 223962., 239754.,
      116250., 130506., 145146., 160170., 288756., 318804., 349620., 381204.,
      520590., 567966., 616494., 666174., 558894., 608574., 659406., 711390.,
      597198., 649182., 702318., 756606., 470772., 506964., 543924., 581652.,
      272730., 291594., 310842., 330474., 160700., 172252., 184060., 196124.,
      367096., 391224., 415864., 441016., 621236., 658964., 697460., 736724.,
      655988., 695252., 735284., 776084., 690740., 731540., 773108., 815444.,
      517112., 545336., 574072., 603320., 287548., 302172., 317052., 332188.,
      127070., 133870., 140798., 147854., 281084., 295196., 309564., 324188.,
      463066., 485002., 507322., 530026., 485050., 507754., 530842., 554314.,
      507034., 530506., 554362., 578602., 370428., 386588., 403004., 419676.,
      201758., 210094., 218558., 227150.};
  const std::array<int, 4> in_shape = {{1, 7, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,  610.,  890.,   1010.,  1130.,  1250.,  1144.,  969.,
      988.,  1500., 2110.,  2320.,  2530.,  2740.,  2436.,  2014.,
      2030., 3000., 4125.,  4450.,  4775.,  5100.,  4450.,  3620.,
      3470., 5000., 6725.,  7050.,  7375.,  7700.,  6610.,  5300.,
      4910., 7000., 9325.,  9650.,  9975.,  10300., 8770.,  6980.,
      6004., 8420., 11050., 11360., 11670., 11980., 10060., 7906.,
      6180., 8590., 11180., 11450., 11720., 11990., 9988.,  7791.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   10.,  20.,   30.,   34.,   31.,   20.,   11.,  35.,
      74.,  130., 166., 161.,  133.,  80.,   50.,   133.,  252., 410.,
      488., 441., 346., 200.,  125.,  298.,  522.,  800.,  878., 756.,
      571., 320., 200., 463.,  792.,  1190., 1268., 1071., 796., 440.,
      249., 549., 902., 1310., 1378., 1127., 815.,  440.,  189., 408.,
      658., 940., 982., 790.,  563.,  300.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,  4460.,  6565.,  7495.,  8425.,  9355.,  8612.,  7329.,
      7352.,  11232., 15880., 17520., 19160., 20800., 18560., 15392.,
      15355., 22780., 31425., 33975., 36525., 39075., 34180., 27865.,
      26635., 38460., 51825., 54375., 56925., 59475., 51140., 41065.,
      37915., 54140., 72225., 74775., 77325., 79875., 68100., 54265.,
      46784., 65664., 86240., 88680., 91120., 93560., 78624., 61832.,
      48387., 67292., 87625., 89755., 91885., 94015., 78356., 61149.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,   124.,   196.,   233.,  218.,  143.,  64.,   224.,
      496.,  896.,  1168., 1156.,  968.,   588.,  337.,  926.,  1791., 2956.,
      3556., 3249., 2570., 1495.,  907.,   2186., 3861., 5956., 6556., 5679.,
      4310., 2425., 1477., 3446.,  5931.,  8956., 9556., 8109., 6050., 3355.,
      1892., 4184., 6892., 10032., 10560., 8656., 6272., 3392., 1453., 3142.,
      5075., 7260., 7588., 6113.,  4362.,  2327.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,  34024.,  50330.,  57650.,  64970.,  72290.,  66760.,  56958.,
      56632.,  86816.,  123080., 136040., 149000., 161960., 144800., 120280.,
      119330., 177400., 245150., 265350., 285550., 305750., 267800., 218570.,
      208610., 301560., 406750., 426950., 447150., 467350., 402200., 323210.,
      297890., 425720., 568350., 588550., 608750., 628950., 536600., 427850.,
      369304., 518560., 681320., 700680., 720040., 739400., 621600., 489016.,
      382902., 532648., 693770., 710690., 727610., 744530., 620680., 484494.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   856.,   1400.,  1714.,  1628.,  1078.,
      420.,   1576.,  3596.,  6608.,  8720.,  8732.,  7368.,  4500.,
      2450.,  6868.,  13446., 22376., 27080., 24894., 19780., 11546.,
      6890.,  16708., 29646., 45896., 50600., 43974., 33460., 18866.,
      11330., 26548., 45846., 69416., 74120., 63054., 47140., 26186.,
      14740., 32648., 53852., 78480., 82640., 67820., 49192., 26628.,
      11390., 24652., 39850., 57048., 59640., 48082., 34332., 18326.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,  1536.,  2020.,  2440.,  3005.,  3560.,  3455.,  4040.,  3905.,
      4520.,  4355.,  5000.,  4036.,  4576.,  3453.,  3876.,  3400.,  3952.,
      5232.,  6000.,  7440.,  8440.,  8240.,  9280.,  9040.,  10120., 9840.,
      10960., 8816.,  9744.,  7336.,  8056.,  7235.,  8120.,  10780., 12000.,
      14925., 16500., 16175., 17800., 17425., 19100., 18675., 20400., 16380.,
      17800., 13385., 14480., 12755., 13880., 18460., 20000., 24925., 26900.,
      26175., 28200., 27425., 29500., 28675., 30800., 24700., 26440., 19865.,
      21200., 18275., 19640., 26140., 28000., 34925., 37300., 36175., 38600.,
      37425., 39900., 38675., 41200., 33020., 35080., 26345., 27920., 22768.,
      24016., 31984., 33680., 42040., 44200., 43240., 45440., 44440., 46680.,
      45640., 47920., 38384., 40240., 30208., 31624., 23667., 24720., 32932.,
      34360., 42905., 44720., 43955., 45800., 45005., 46880., 46055., 47960.,
      38404., 39952., 29985., 31164.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   44.,   80.,   76.,   120.,
      97.,   136.,  94.,   124.,  63.,   80.,   20.,   44.,   84.,   140.,
      200.,  296.,  376.,  520.,  504.,  664.,  512.,  644.,  436.,  532.,
      268.,  320.,  137.,  200.,  394.,  532.,  783.,  1008., 1316., 1640.,
      1604., 1952., 1485., 1764., 1186., 1384., 695.,  800.,  407.,  500.,
      994.,  1192., 1773., 2088., 2756., 3200., 3044., 3512., 2655., 3024.,
      2026., 2284., 1145., 1280., 677.,  800.,  1594., 1852., 2763., 3168.,
      4196., 4760., 4484., 5072., 3825., 4284., 2866., 3184., 1595., 1760.,
      896.,  996.,  1988., 2196., 3284., 3608., 4792., 5240., 5048., 5512.,
      4148., 4508., 3012., 3260., 1632., 1760., 697.,  756.,  1510., 1632.,
      2443., 2632., 3500., 3760., 3660., 3928., 2953., 3160., 2110., 2252.,
      1127., 1200.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,   11685.,  15356.,  18668.,  22975.,  27355.,  26515.,  31135.,
      30055.,  34915.,  33595.,  38695.,  31244.,  35516.,  26805.,  30153.,
      26132.,  30500.,  40368.,  46448.,  57580.,  65500.,  63900.,  72140.,
      70220.,  78780.,  76540.,  85420.,  68720.,  76080.,  57284.,  62996.,
      56155.,  63175.,  83860.,  93540.,  116325., 128825., 126225., 139125.,
      136125., 149425., 146025., 159725., 128260., 139540., 104935., 113635.,
      99835.,  108775., 144660., 156900., 195525., 211225., 205425., 221525.,
      215325., 231825., 225225., 242125., 194180., 208020., 156295., 166915.,
      143515., 154375., 205460., 220260., 274725., 293625., 284625., 303925.,
      294525., 314225., 304425., 324525., 260100., 276500., 207655., 220195.,
      179684., 189620., 252528., 266032., 332060., 349260., 341580., 359100.,
      351100., 368940., 360620., 378780., 303408., 318192., 238868., 250148.,
      187257., 195645., 260636., 272012., 339655., 354115., 347995., 362695.,
      356335., 371275., 364675., 379855., 304172., 316508., 237549., 246945.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   292.,   564.,   532.,
      868.,   707.,   1007.,  698.,   930.,   473.,   605.,   118.,   302.,
      572.,   1004.,  1426.,  2170.,  2744.,  3864.,  3736.,  4984.,  3850.,
      4882.,  3308.,  4060.,  2046.,  2454.,  979.,   1471.,  2894.,  3974.,
      5841.,  7605.,  9916.,  12460., 12172., 14908., 11349., 13545., 9110.,
      10670., 5359.,  6187.,  3079.,  3811.,  7574.,  9134.,  13581., 16065.,
      21196., 24700., 23452., 27148., 20529., 23445., 15710., 17750., 8899.,
      9967.,  5179.,  6151.,  12254., 14294., 21321., 24525., 32476., 36940.,
      34732., 39388., 29709., 33345., 22310., 24830., 12439., 13747., 6974.,
      7766.,  15500., 17148., 25642., 28210., 37464., 41016., 39480., 43160.,
      32482., 35338., 23612., 25580., 12806., 13822., 5461.,  5929.,  11842.,
      12810., 19175., 20675., 27492., 29556., 28756., 30884., 23219., 24863.,
      16602., 17730., 8873.,  9453.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,   91086.,   119656.,  145960.,  179570.,  214370.,  207650.,
      244370.,  235730.,  274370.,  263810.,  304370.,  245800.,  279784.,
      211182.,  237822.,  204808.,  239560.,  317024.,  365408.,  452920.,
      515960.,  503160.,  568760.,  553400.,  621560.,  603640.,  674360.,
      542560.,  601184.,  452680.,  498184.,  442370.,  498290.,  661400.,
      738520.,  918350.,  1017950., 997150.,  1099950., 1075950., 1181950.,
      1154750., 1263950., 1015000., 1104920., 830930.,  900290.,  789890.,
      861170.,  1145240., 1242840., 1548750., 1673950., 1627550., 1755950.,
      1706350., 1837950., 1785150., 1919950., 1539800., 1650200., 1239890.,
      1324610., 1137410., 1224050., 1629080., 1747160., 2179150., 2329950.,
      2257950., 2411950., 2336750., 2493950., 2415550., 2575950., 2064600.,
      2195480., 1648850., 1748930., 1427656., 1506952., 2006880., 2114656.,
      2639480., 2776760., 2715320., 2855160., 2791160., 2933560., 2867000.,
      3011960., 2412640., 2530656., 1899784., 1989832., 1489758., 1556718.,
      2073832., 2164648., 2702930., 2818370., 2769410., 2886770., 2835890.,
      2955170., 2902370., 3023570., 2421160., 2519656., 1891086., 1966110.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   2104.,   4216.,
      3960.,   6584.,   5386.,   7738.,   5372.,   7196.,   3662.,   4702.,
      780.,    2220.,   4184.,   7576.,   10724.,  16580.,  20912.,  29744.,
      28720.,  38576.,  29828.,  37988.,  25752.,  31704.,  15980.,  19212.,
      7370.,   11258.,  22132.,  30676.,  45054.,  59022.,  76904.,  97064.,
      94760.,  116456., 88686.,  106110., 71380.,  83764.,  42074.,  48650.,
      23930.,  29738.,  59092.,  71476.,  106254., 125982., 166184., 194024.,
      184040., 213416., 161406., 184590., 123700., 139924., 70154.,  78650.,
      40490.,  48218.,  96052.,  112276., 167454., 192942., 255464., 290984.,
      273320., 310376., 234126., 263070., 176020., 196084., 98234.,  108650.,
      55020.,  61324.,  122392., 135512., 202628., 223076., 296240., 324528.,
      312240., 341552., 257060., 279812., 186968., 202648., 101452., 109548.,
      43230.,  46958.,  93788.,  101500., 151930., 163882., 217912., 234360.,
      227960., 244920., 184138., 197242., 131708., 140700., 70414.,  75038.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      70415.,  73100.,  75815.,  78560.,  100900., 104560., 108260., 112000.,
      135025., 139700., 144425., 149200., 139925., 144700., 149525., 154400.,
      144825., 149700., 154625., 159600., 149725., 154700., 159725., 164800.,
      128020., 132080., 136180., 140320., 102275., 105380., 108515., 111680.,
      88612.,  91072.,  93556.,  96064.,  124592., 127936., 131312., 134720.,
      163900., 168160., 172460., 176800., 168620., 172960., 177340., 181760.,
      173340., 177760., 182220., 186720., 178060., 182560., 187100., 191680.,
      149872., 153536., 157232., 160960., 118036., 120832., 123652., 126496.,
      92589.,  94668.,  96765.,  98880.,  128908., 131728., 134572., 137440.,
      168035., 171620., 175235., 178880., 172175., 175820., 179495., 183200.,
      176315., 180020., 183755., 187520., 180455., 184220., 188015., 191840.,
      150556., 153616., 156700., 159808., 117609., 119940., 122289., 124656.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   116.,   176.,   244.,   320.,   228.,   304.,
      388.,   480.,   319.,   388.,   463.,   544.,   322.,   376.,   434.,
      496.,   221.,   252.,   285.,   320.,   38.,    80.,    126.,   176.,
      236.,   336.,   444.,   560.,   626.,   800.,   986.,   1184.,  1240.,
      1504.,  1784.,  2080.,  1720.,  2016.,  2328.,  2656.,  1802.,  2048.,
      2306.,  2576.,  1564.,  1744.,  1932.,  2128.,  974.,   1072.,  1174.,
      1280.,  431.,   548.,   671.,   800.,   1318.,  1576.,  1846.,  2128.,
      2709.,  3132.,  3573.,  4032.,  4652.,  5264.,  5900.,  6560.,  5756.,
      6416.,  7100.,  7808.,  5409.,  5940.,  6489.,  7056.,  4366.,  4744.,
      5134.,  5536.,  2579.,  2780.,  2987.,  3200.,  1451.,  1628.,  1811.,
      2000.,  3598.,  3976.,  4366.,  4768.,  6489.,  7092.,  7713.,  8352.,
      10172., 11024., 11900., 12800., 11276., 12176., 13100., 14048., 9909.,
      10620., 11349., 12096., 7606.,  8104.,  8614.,  9136.,  4319.,  4580.,
      4847.,  5120.,  2471.,  2708.,  2951.,  3200.,  5878.,  6376.,  6886.,
      7408.,  10269., 11052., 11853., 12672., 15692., 16784., 17900., 19040.,
      16796., 17936., 19100., 20288., 14409., 15300., 16209., 17136., 10846.,
      11464., 12094., 12736., 6059.,  6380.,  6707.,  7040.,  3390.,  3584.,
      3782.,  3984.,  7548.,  7952.,  8364.,  8784.,  12506., 13136., 13778.,
      14432., 18296., 19168., 20056., 20960., 19288., 20192., 21112., 22048.,
      15890., 16592., 17306., 18032., 11564., 12048., 12540., 13040., 6278.,
      6528.,  6782.,  7040.,  2673.,  2788.,  2905.,  3024.,  5802.,  6040.,
      6282.,  6528.,  9403.,  9772.,  10147., 10528., 13492., 14000., 14516.,
      15040., 14116., 14640., 15172., 15712., 11407., 11812., 12223., 12640.,
      8162.,  8440.,  8722.,  9008.,  4365.,  4508.,  4653.,  4800.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  557995.,  579415.,  601075.,  622975.,  799940.,
      829140.,  858660.,  888500.,  1070925., 1108225., 1145925., 1184025.,
      1109925., 1148025., 1186525., 1225425., 1148925., 1187825., 1227125.,
      1266825., 1187925., 1227625., 1267725., 1308225., 1016100., 1048500.,
      1081220., 1114260., 812035.,  836815.,  861835.,  887095.,  704012.,
      723644.,  743468.,  763484.,  990096.,  1016784., 1043728., 1070928.,
      1302740., 1336740., 1371060., 1405700., 1340340., 1374980., 1409940.,
      1445220., 1377940., 1413220., 1448820., 1484740., 1415540., 1451460.,
      1487700., 1524260., 1191696., 1220944., 1250448., 1280208., 938732.,
      961052.,  983564.,  1006268., 736581.,  753177.,  769917.,  786801.,
      1025660., 1048172., 1070876., 1093772., 1337155., 1365775., 1394635.,
      1423735., 1370155., 1399255., 1428595., 1458175., 1403155., 1432735.,
      1462555., 1492615., 1436155., 1466215., 1496515., 1527055., 1198364.,
      1222796., 1247420., 1272236., 936237.,  954849.,  973605.,  992505.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   820.,    1284.,   1812.,   2404.,
      1684.,   2276.,   2932.,   3652.,   2423.,   2963.,   3551.,   4187.,
      2474.,   2898.,   3354.,   3842.,   1709.,   1953.,   2213.,   2489.,
      226.,    554.,    914.,    1306.,   1700.,   2484.,   3332.,   4244.,
      4678.,   6046.,   7510.,   9070.,   9416.,   11496.,  13704.,  16040.,
      13192.,  15528.,  17992.,  20584.,  13942.,  15886.,  17926.,  20062.,
      12164.,  13588.,  15076.,  16628.,  7602.,   8378.,   9186.,   10026.,
      3223.,   4147.,   5119.,   6139.,   10046.,  12086.,  14222.,  16454.,
      20853.,  24201.,  27693.,  31329.,  36028.,  40876.,  45916.,  51148.,
      44764.,  49996.,  55420.,  61036.,  42237.,  46449.,  50805.,  55305.,
      34190.,  37190.,  40286.,  43478.,  20239.,  21835.,  23479.,  25171.,
      11263.,  12667.,  14119.,  15619.,  28046.,  31046.,  34142.,  37334.,
      50733.,  55521.,  60453.,  65529.,  79708.,  86476.,  93436.,  100588.,
      88444.,  95596.,  102940., 110476., 77877.,  83529.,  89325.,  95265.,
      59870.,  63830.,  67886.,  72038.,  34039.,  36115.,  38239.,  40411.,
      19303.,  21187.,  23119.,  25099.,  46046.,  50006.,  54062.,  58214.,
      80613.,  86841.,  93213.,  99729.,  123388., 132076., 140956., 150028.,
      132124., 141196., 150460., 159916., 113517., 120609., 127845., 135225.,
      85550.,  90470.,  95486.,  100598., 47839.,  50395.,  52999.,  55651.,
      26738.,  28282.,  29858.,  31466.,  59588.,  62804.,  66084.,  69428.,
      98806.,  103822., 108934., 114142., 144648., 151592., 158664., 165864.,
      152520., 159720., 167048., 174504., 125734., 131326., 137014., 142798.,
      91556.,  95412.,  99332.,  103316., 49730.,  51722.,  53746.,  55802.,
      21157.,  22073.,  23005.,  23953.,  45946.,  47842.,  49770.,  51730.,
      74495.,  77435.,  80423.,  83459.,  106932., 110980., 115092., 119268.,
      111892., 116068., 120308., 124612., 90455.,  93683.,  96959.,  100283.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x7x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,   303486.,   340494.,   378654.,   446824.,   497704.,
      550120.,   604072.,   676130.,   743570.,   812930.,   884210.,
      786050.,   857330.,   930530.,   1005650.,  895970.,   971090.,
      1048130.,  1127090.,  1005890.,  1084850.,  1165730.,  1248530.,
      941800.,   1008040.,  1075816.,  1145128.,  812238.,   864222.,
      917358.,   971646.,   776872.,   844648.,   913960.,   984808.,
      1209056.,  1303520.,  1400032.,  1498592.,  1734680.,  1857880.,
      1983640.,  2111960.,  1932440.,  2060760.,  2191640.,  2325080.,
      2130200.,  2263640.,  2399640.,  2538200.,  2327960.,  2466520.,
      2607640.,  2751320.,  2098400.,  2213344.,  2330336.,  2449376.,
      1754920.,  1844200.,  1935016.,  2027368.,  1700930.,  1810610.,
      1922210.,  2035730.,  2551000.,  2702360.,  2856280.,  3012760.,
      3551150.,  3746750.,  3945550.,  4147550.,  3862350.,  4064350.,
      4269550.,  4477950.,  4173550.,  4381950.,  4593550.,  4808350.,
      4484750.,  4699550.,  4917550.,  5138750.,  3949400.,  4126360.,
      4305880.,  4487960.,  3238370.,  3374930.,  3513410.,  3653810.,
      3071810.,  3212210.,  3354530.,  3498770.,  4460760.,  4653080.,
      4847960.,  5045400.,  6040750.,  6287550.,  6537550.,  6790750.,
      6351950.,  6605150.,  6861550.,  7121150.,  6663150.,  6922750.,
      7185550.,  7451550.,  6974350.,  7240350.,  7509550.,  7781950.,
      6023000.,  6240920.,  6461400.,  6684440.,  4855010.,  5022290.,
      5191490.,  5362610.,  4442690.,  4613810.,  4786850.,  4961810.,
      6370520.,  6603800.,  6839640.,  7078040.,  8530350.,  8828350.,
      9129550.,  9433950.,  8841550.,  9145950.,  9453550.,  9764350.,
      9152750.,  9463550.,  9777550.,  10094750., 9463950.,  9781150.,
      10101550., 10425150., 8096600.,  8355480.,  8616920.,  8880920.,
      6471650.,  6669650.,  6869570.,  7071410.,  5612584.,  5769448.,
      5927848.,  6087784.,  7894240.,  8107488.,  8322784.,  8540128.,
      10388120., 10659800., 10934040., 11210840., 10688280., 10965080.,
      11244440., 11526360., 10988440., 11270360., 11554840., 11841880.,
      11288600., 11575640., 11865240., 12157400., 9504480.,  9738208.,
      9973984.,  10211808., 7487656.,  7666024.,  7845928.,  8027368.,
      5876142.,  6008766.,  6142542.,  6277470.,  8182888.,  8362792.,
      8544232.,  8727208.,  10668770., 10897490., 11128130., 11360690.,
      10932290., 11164850., 11399330., 11635730., 11195810., 11432210.,
      11670530., 11910770., 11459330., 11699570., 11941730., 12185810.,
      9562600.,  9757864.,  9954664.,  10153000., 7471374.,  7620126.,
      7770030.,  7921086.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x7x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    6136.,    9784.,
      13944.,   18616.,   12920.,   17592.,   22776.,   28472.,   18874.,
      23146.,   27802.,   32842.,   19388.,   22748.,   26364.,   30236.,
      13438.,   15374.,   17438.,   19630.,   1500.,    4092.,    6940.,
      10044.,   12856.,   19064.,   25784.,   33016.,   36116.,   46964.,
      58580.,   70964.,   73328.,   89840.,   107376.,  125936.,  103280.,
      121840.,  141424.,  162032.,  109652.,  125108.,  141332.,  158324.,
      95928.,   107256.,  119096.,  131448.,  60060.,   66236.,   72668.,
      79356.,   24890.,   32234.,   39962.,   48074.,   78388.,   94612.,
      111604.,  129364.,  163566.,  190206.,  217998.,  246942.,  283496.,
      322088.,  362216.,  403880.,  353000.,  394664.,  437864.,  482600.,
      333774.,  367326.,  402030.,  437886.,  270580.,  294484.,  319156.,
      344596.,  160346.,  173066.,  186170.,  199658.,  88730.,   99914.,
      111482.,  123434.,  221428.,  245332.,  270004.,  295444.,  401166.,
      439326.,  478638.,  519102.,  631016.,  684968.,  740456.,  797480.,
      700520.,  757544.,  816104.,  876200.,  617454.,  662526.,  708750.,
      756126.,  475060.,  506644.,  538996.,  572116.,  270266.,  286826.,
      303770.,  321098.,  152570.,  167594.,  183002.,  198794.,  364468.,
      396052.,  428404.,  461524.,  638766.,  688446.,  739278.,  791262.,
      978536.,  1047848., 1118696., 1191080., 1048040., 1120424., 1194344.,
      1269800., 901134.,  957726.,  1015470., 1074366., 679540.,  718804.,
      758836.,  799636.,  380186.,  400586.,  421370.,  442538.,  212380.,
      224700.,  237276.,  250108.,  473528.,  499192.,  525368.,  552056.,
      785492.,  825524.,  866324.,  907892.,  1150320., 1205744., 1262192.,
      1319664., 1213040., 1270512., 1329008., 1388528., 1000340., 1044980.,
      1090388., 1136564., 728632.,  759416.,  790712.,  822520.,  395868.,
      411772.,  427932.,  444348.,  168350.,  175662.,  183102.,  190670.,
      365692.,  380828.,  396220.,  411868.,  593050.,  616522.,  640378.,
      664618.,  851448.,  883768.,  916600.,  949944.,  891000.,  924344.,
      958200.,  992568.,  720442.,  746218.,  772378.,  798922.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.};
  const std::array<int, 4> in_shape = {{1, 7, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,  510.,  750.,  870.,  816.,   705.,   796.,  1220., 1730.,  1940.,
      1756., 1474., 1610., 2400., 3325.,  3650.,  3230., 2660., 2690.,  3900.,
      5275., 5600., 4850., 3920., 3770.,  5400.,  7225., 7550., 6470.,  5180.,
      4850., 6900., 9175., 9500., 8090.,  6440.,  5632., 7900., 10370., 10680.,
      8980., 7066., 5628., 7830., 10200., 10470., 8736., 6825.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   7.,   10.,  13.,  10.,  9.,   29.,  39.,  49.,  59.,  40.,
      34.,  95.,  116., 137., 158., 100., 86.,  222., 258., 294., 330., 200.,
      166., 402., 438., 474., 510., 300., 220., 503., 536., 569., 602., 340.,
      217., 483., 509., 535., 561., 310., 147., 322., 337., 352., 367., 200.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,  3708.,  5505.,  6435.,  6084.,  5289.,  5888.,  9088.,
      12960., 14600., 13280., 11192., 12115., 18140., 25225., 27775.,
      24660., 20365., 20575., 29900., 40525., 43075., 37380., 30265.,
      29035., 41660., 55825., 58375., 50100., 40165., 37495., 53420.,
      71125., 73675., 62820., 50065., 43880., 61600., 80920., 83360.,
      70144., 55232., 44043., 61308., 79905., 82035., 68484., 53529.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   42.,   62.,   82.,   67.,   52.,   184.,  256.,  328.,
      400.,  280.,  221.,  646.,  802.,  958.,  1114., 719.,  592.,  1568.,
      1840., 2112., 2384., 1464., 1192., 2928., 3200., 3472., 3744., 2224.,
      1637., 3766., 4018., 4270., 4522., 2567., 1640., 3664., 3864., 4064.,
      4264., 2364., 1121., 2462., 2578., 2694., 2810., 1535.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,  28200.,  42090.,  49410.,  46920.,  40926.,  45208.,  70048.,
      100200., 113160., 103200., 87160.,  93890.,  140920., 196350., 216550.,
      192600., 159290., 160850., 234040., 317550., 337750., 293400., 237770.,
      227810., 327160., 438750., 458950., 394200., 316250., 294770., 420280.,
      559950., 580150., 495000., 394730., 346360., 486432., 639240., 658600.,
      554400., 436696., 348438., 485160., 632490., 649410., 542280., 423966.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   284.,   428.,   572.,   486.,   340.,   1288.,
      1832.,  2376.,  2920.,  2084.,  1570.,  4724.,  5924.,  7124.,
      8324.,  5434.,  4360.,  11728., 13840., 15952., 18064., 11176.,
      9000.,  22288., 24400., 26512., 28624., 17096., 12610., 29108.,
      31076., 33044., 35012., 19930., 12740., 28520., 30088., 31656.,
      33224., 18452., 8750.,  19244., 20156., 21068., 21980., 12022.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,  1272.,  1668.,  2040.,  2505.,  3000.,  2955.,  3480.,  2820.,
      3264.,  2469.,  2820.,  2704.,  3184.,  4208.,  4880.,  6040.,  6920.,
      6840.,  7760.,  6256.,  7024.,  5296.,  5896.,  5675.,  6440.,  8540.,
      9600.,  11925., 13300., 13175., 14600., 11740., 12920., 9725.,  10640.,
      9815.,  10760., 14300., 15600., 19425., 21100., 20675., 22400., 17980.,
      19400., 14585., 15680., 13955., 15080., 20060., 21600., 26925., 28900.,
      28175., 30200., 24220., 25880., 19445., 20720., 18095., 19400., 25820.,
      27600., 34425., 36700., 35675., 38000., 30460., 32360., 24305., 25760.,
      21352., 22528., 30000., 31600., 39440., 41480., 40640., 42720., 34224.,
      35920., 26968., 28264., 21531., 22512., 29988., 31320., 39105., 40800.,
      40155., 41880., 33540., 34944., 26229., 27300.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   14.,   28.,   22.,   40.,   30.,   52.,
      27.,   40.,   16.,   36.,   68.,   116.,  100.,  156.,  132.,  196.,
      164.,  236.,  120.,  160.,  85.,   136.,  266.,  380.,  338.,  464.,
      410.,  548.,  482.,  632.,  319.,  400.,  248.,  344.,  680.,  888.,
      808.,  1032., 936.,  1176., 1064., 1320., 664.,  800.,  528.,  664.,
      1320., 1608., 1448., 1752., 1576., 1896., 1704., 2040., 1024., 1200.,
      757.,  880.,  1754., 2012., 1874., 2144., 1994., 2276., 2114., 2408.,
      1207., 1360., 772.,  868.,  1732., 1932., 1828., 2036., 1924., 2140.,
      2020., 2244., 1124., 1240., 533.,  588.,  1174., 1288., 1230., 1348.,
      1286., 1408., 1342., 1468., 735.,  800.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,   9645.,   12636.,  15564.,  19095.,  22995.,  22635.,  26775.,
      21708.,  25212.,  19077.,  21849.,  20708.,  24500.,  32368.,  37680.,
      46620.,  53580.,  52940.,  60220.,  48560.,  54640.,  41204.,  45956.,
      43915.,  49975.,  66260.,  74660.,  92725.,  103625., 102625., 113925.,
      91620.,  100980., 76015.,  83275.,  76675.,  84175.,  111860., 122180.,
      152125., 165425., 162025., 175725., 141060., 152340., 114535., 123235.,
      109435., 118375., 157460., 169700., 211525., 227225., 221425., 237525.,
      190500., 203700., 153055., 163195., 142195., 152575., 203060., 217220.,
      270925., 289025., 280825., 299325., 239940., 255060., 191575., 203155.,
      168500., 177860., 236848., 249584., 311500., 327740., 321020., 337580.,
      270448., 283952., 213188., 223508., 170313., 178125., 237276., 247884.,
      309495., 322995., 317835., 331575., 265548., 276732., 207717., 216249.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   90.,    194.,   146.,   282.,   202.,
      370.,   193.,   293.,   94.,    246.,   460.,   828.,   700.,   1132.,
      940.,   1436.,  1180.,  1740.,  886.,   1198.,  587.,   983.,   1918.,
      2806.,  2470.,  3454.,  3022.,  4102.,  3574.,  4750.,  2399.,  3035.,
      1804.,  2556.,  5048.,  6680.,  6040.,  7800.,  7032.,  8920.,  8024.,
      10040., 5052.,  6124.,  3964.,  5036.,  10008., 12280., 11000., 13400.,
      11992., 14520., 12984., 15640., 7852.,  9244.,  5819.,  6791.,  13534.,
      15574., 14470., 16606., 15406., 17638., 16342., 18670., 9359.,  10571.,
      5990.,  6750.,  13468., 15052., 14220., 15868., 14972., 16684., 15724.,
      17500., 8766.,  9686.,  4157.,  4593.,  9170.,  10074., 9610.,  10546.,
      10050., 11018., 10490., 11490., 5753.,  6269.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,   75054.,   98280.,   121512.,  149010.,  179970.,  177090.,
      209970.,  170280.,  198120.,  149934.,  171966.,  161992.,  192136.,
      253792.,  296032.,  366200.,  421560.,  416440.,  474360.,  382560.,
      430944.,  325000.,  362824.,  345410.,  393650.,  521880.,  588760.,
      731150.,  817950.,  809950.,  899950.,  723800.,  798360.,  601010.,
      658850.,  606050.,  665810.,  884760.,  967000.,  1203950., 1309950.,
      1282750., 1391950., 1117400., 1207320., 907730.,  977090.,  866690.,
      937970.,  1247640., 1345240., 1676750., 1801950., 1755550., 1883950.,
      1511000., 1616280., 1214450., 1295330., 1127330., 1210130., 1610520.,
      1723480., 2149550., 2293950., 2228350., 2375950., 1904600., 2025240.,
      1521170., 1613570., 1338760., 1413448., 1882208., 1983840., 2475960.,
      2605560., 2551800., 2683960., 2150240., 2258016., 1695304., 1777672.,
      1354782., 1417134., 1887720., 1972392., 2462610., 2570370., 2529090.,
      2638770., 2113320., 2202600., 1653294., 1721406.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    636.,    1436.,   1052.,   2108.,
      1468.,   2780.,   1454.,   2238.,   620.,    1804.,   3352.,   6232.,
      5208.,   8600.,   7064.,   10968.,  8920.,   13336.,  6796.,   9260.,
      4330.,   7450.,   14516.,  21524.,  18836.,  26612.,  23156.,  31700.,
      27476.,  36788.,  18586.,  23626.,  13720.,  19672.,  38832.,  51760.,
      46640.,  60592.,  54448.,  69424.,  62256.,  78256.,  39384.,  47896.,
      30680.,  39192.,  77872.,  95920.,  85680.,  104752., 93488.,  113584.,
      101296., 122416., 61464.,  72536.,  45610.,  53338.,  106292., 122516.,
      113684., 130676., 121076., 138836., 128468., 146996., 73690.,  83338.,
      47180.,  53228.,  106200., 118808., 112152., 125272., 118104., 131736.,
      124056., 138200., 69228.,  76556.,  32830.,  36302.,  72476.,  79676.,
      75964.,  83420.,  79452.,  87164.,  82940.,  90908.,  45518.,  49630.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      53615.,  55820.,  58055.,  60320.,  77220.,  80240.,  83300.,  86400.,
      103825., 107700., 111625., 115600., 108725., 112700., 116725., 120800.,
      93620.,  96880.,  100180., 103520., 75275.,  77780.,  80315.,  82880.,
      69815.,  72380.,  74975.,  77600.,  99780.,  103280., 106820., 110400.,
      133225., 137700., 142225., 146800., 138125., 142700., 147325., 152000.,
      118100., 121840., 125620., 129440., 94355.,  97220.,  100115., 103040.,
      83092.,  85408.,  87748.,  90112.,  116848., 120000., 123184., 126400.,
      153740., 157760., 161820., 165920., 158460., 162560., 166700., 170880.,
      133552., 136896., 140272., 143680., 105316., 107872., 110452., 113056.,
      84189.,  86124.,  88077.,  90048.,  117324., 119952., 122604., 125280.,
      153075., 156420., 159795., 163200., 157215., 160620., 164055., 167520.,
      131388., 134160., 136956., 139776., 102801., 104916., 107049., 109200.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    9.,    16.,   10.,   24.,   42.,   64.,   34.,   56.,
      82.,   112.,  58.,   88.,   122.,  160.,  82.,   120.,  162.,  208.,
      85.,   108.,  133.,  160.,  30.,   64.,   102.,  144.,  188.,  272.,
      364.,  464.,  300.,  400.,  508.,  624.,  412.,  528.,  652.,  784.,
      524.,  656.,  796.,  944.,  406.,  480.,  558.,  640.,  247.,  340.,
      439.,  544.,  854.,  1064., 1286., 1520., 1118., 1352., 1598., 1856.,
      1382., 1640., 1910., 2192., 1646., 1928., 2222., 2528., 1123., 1276.,
      1435., 1600., 812.,  992.,  1180., 1376., 2328., 2720., 3128., 3552.,
      2808., 3232., 3672., 4128., 3288., 3744., 4216., 4704., 3768., 4256.,
      4760., 5280., 2396., 2656., 2924., 3200., 1852., 2112., 2380., 2656.,
      4728., 5280., 5848., 6432., 5208., 5792., 6392., 7008., 5688., 6304.,
      6936., 7584., 6168., 6816., 7480., 8160., 3756., 4096., 4444., 4800.,
      2791., 3028., 3271., 3520., 6518., 7016., 7526., 8048., 6974., 7496.,
      8030., 8576., 7430., 7976., 8534., 9104., 7886., 8456., 9038., 9632.,
      4531., 4828., 5131., 5440., 2902., 3088., 3278., 3472., 6540., 6928.,
      7324., 7728., 6908., 7312., 7724., 8144., 7276., 7696., 8124., 8560.,
      7644., 8080., 8524., 8976., 4270., 4496., 4726., 4960., 2025., 2132.,
      2241., 2352., 4474., 4696., 4922., 5152., 4690., 4920., 5154., 5392.,
      4906., 5144., 5386., 5632., 5122., 5368., 5618., 5872., 2813., 2940.,
      3069., 3200.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,   31353.,   35421.,   39633.,   46332.,   51948.,   57756.,
      63756.,   70755.,   78255.,   85995.,   93975.,   84555.,   92535.,
      100755.,  109215.,  81756.,   88524.,   95484.,   102636.,  72285.,
      77649.,   83157.,   88809.,   77324.,   84668.,   92204.,   99932.,
      121744.,  132048.,  142608.,  153424.,  176340.,  189860.,  203700.,
      217860.,  201140.,  215300.,  229780.,  244580.,  185360.,  197200.,
      209296.,  221648.,  157868.,  167132.,  176588.,  186236.,  166795.,
      178615.,  190675.,  202975.,  252740.,  269140.,  285860.,  302900.,
      354925.,  376225.,  397925.,  420025.,  393925.,  416025.,  438525.,
      461425.,  352740.,  371060.,  389700.,  408660.,  293395.,  307615.,
      322075.,  336775.,  295675.,  310375.,  325315.,  340495.,  432260.,
      452500.,  473060.,  493940.,  588925.,  615025.,  641525.,  668425.,
      627925.,  654825.,  682125.,  709825.,  547620.,  569780.,  592260.,
      615060.,  445315.,  462415.,  479755.,  497335.,  424555.,  442135.,
      459955.,  478015.,  611780.,  635860.,  660260.,  684980.,  822925.,
      853825.,  885125.,  916825.,  861925.,  893625.,  925725.,  958225.,
      742500.,  768500.,  794820.,  821460.,  597235.,  617215.,  637435.,
      657895.,  553435.,  573895.,  594595.,  615535.,  791300.,  819220.,
      847460.,  876020.,  1056925., 1092625., 1128725., 1165225., 1095925.,
      1132425., 1169325., 1206625., 937380.,  967220.,  997380.,  1027860.,
      749155.,  772015.,  795115.,  818455.,  660140.,  678620.,  697292.,
      716156.,  928528.,  953680.,  979088.,  1004752., 1221940., 1254020.,
      1286420., 1319140., 1259540., 1292260., 1325300., 1358660., 1061776.,
      1088464., 1115408., 1142608., 837452.,  857852.,  878444.,  899228.,
      669669.,  685113.,  700701.,  716433.,  933372.,  954348.,  975516.,
      996876.,  1217955., 1244655., 1271595., 1298775., 1250955., 1278135.,
      1305555., 1333215., 1045596., 1067724., 1090044., 1112556., 818205.,
      835089.,  852117.,  869289.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    61.,    113.,   58.,    162.,   298.,   466.,   234.,
      402.,   602.,   834.,   410.,   642.,   906.,   1202.,  586.,   882.,
      1210.,  1570.,  637.,   817.,   1013.,  1225.,  178.,   442.,   738.,
      1066.,  1348.,  2004.,  2724.,  3508.,  2212.,  2996.,  3844.,  4756.,
      3076.,  3988.,  4964.,  6004.,  3940.,  4980.,  6084.,  7252.,  3106.,
      3690.,  4306.,  4954.,  1799.,  2531.,  3311.,  4139.,  6430.,  8086.,
      9838.,  11686., 8494.,  10342., 12286., 14326., 10558., 12598., 14734.,
      16966., 12622., 14854., 17182., 19606., 8687.,  9899.,  11159., 12467.,
      6148.,  7572.,  9060.,  10612., 17864., 20968., 24200., 27560., 21640.,
      25000., 28488., 32104., 25416., 29032., 32776., 36648., 29192., 33064.,
      37064., 41192., 18660., 20724., 22852., 25044., 14308., 16372., 18500.,
      20692., 36744., 41128., 45640., 50280., 40520., 45160., 49928., 54824.,
      44296., 49192., 54216., 59368., 48072., 53224., 58504., 63912., 29380.,
      32084., 34852., 37684., 21863., 23747., 25679., 27659., 51166., 55126.,
      59182., 63334., 54766., 58918., 63166., 67510., 58366., 62710., 67150.,
      71686., 61966., 66502., 71134., 75862., 35663., 38027., 40439., 42899.,
      22850., 24330., 25842., 27386., 51556., 54644., 57796., 61012., 54468.,
      57684., 60964., 64308., 57380., 60724., 64132., 67604., 60292., 63764.,
      67300., 70900., 33714., 35514., 37346., 39210., 15989., 16841., 17709.,
      18593., 35354., 37122., 38922., 40754., 37066., 38898., 40762., 42658.,
      38778., 40674., 42602., 44562., 40490., 42450., 44442., 46466., 22253.,
      23265., 24293., 25337.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,   246846.,   279246.,   312798.,   365160.,   409896.,
      456168.,   503976.,   558690.,   618450.,   680130.,   743730.,
      668610.,   732210.,   797730.,   865170.,   647400.,   701352.,
      756840.,   813864.,   573006.,   615774.,   659694.,   704766.,
      611368.,   669928.,   730024.,   791656.,   963808.,   1045984.,
      1130208.,  1216480.,  1397400.,  1505240.,  1615640.,  1728600.,
      1595160.,  1708120.,  1823640.,  1941720.,  1471200.,  1565664.,
      1662176.,  1760736.,  1253800.,  1327720.,  1403176.,  1480168.,
      1322690.,  1417010.,  1513250.,  1611410.,  2005720.,  2136600.,
      2270040.,  2406040.,  2818350.,  2988350.,  3161550.,  3337950.,
      3129550.,  3305950.,  3485550.,  3668350.,  2803800.,  2950040.,
      3098840.,  3250200.,  2333090.,  2446610.,  2562050.,  2679410.,
      2350850.,  2468210.,  2587490.,  2708690.,  3438040.,  3599640.,
      3763800.,  3930520.,  4685550.,  4893950.,  5105550.,  5320350.,
      4996750.,  5211550.,  5429550.,  5650750.,  4359000.,  4535960.,
      4715480.,  4897560.,  3545570.,  3682130.,  3820610.,  3961010.,
      3379010.,  3519410.,  3661730.,  3805970.,  4870360.,  5062680.,
      5257560.,  5455000.,  6552750.,  6799550.,  7049550.,  7302750.,
      6863950.,  7117150.,  7373550.,  7633150.,  5914200.,  6121880.,
      6332120.,  6544920.,  4758050.,  4917650.,  5079170.,  5242610.,
      4407170.,  4570610.,  4735970.,  4903250.,  6302680.,  6525720.,
      6751320.,  6979480.,  8419950.,  8705150.,  8993550.,  9285150.,
      8731150.,  9022750.,  9317550.,  9615550.,  7469400.,  7707800.,
      7948760.,  8192280.,  5970530.,  6153170.,  6337730.,  6524210.,
      5262760.,  5410408.,  5559592.,  5710312.,  7403232.,  7604192.,
      7807200.,  8012256.,  9743640.,  9999960.,  10258840., 10520280.,
      10043800., 10305240., 10569240., 10835800., 8467680.,  8680928.,
      8896224.,  9113568.,  6679336.,  6842344.,  7006888.,  7172968.,
      5341998.,  5465406.,  5589966.,  5715678.,  7446120.,  7613736.,
      7782888.,  7953576.,  9717090.,  9930450.,  10145730., 10362930.,
      9980610.,  10197810., 10416930., 10637970., 8342760.,  8519592.,
      8697960.,  8877864.,  6528846.,  6663774.,  6799854.,  6937086.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      1724.,   3036.,   4604.,   6428.,   3068.,   4892.,   6972.,   9308.,
      4412.,   6748.,   9340.,   12188.,  4926.,   6350.,   7902.,   9582.,
      1180.,   3260.,   5596.,   8188.,   10168.,  15352.,  21048.,  27256.,
      16952.,  23160.,  29880.,  37112.,  23736.,  30968.,  38712.,  46968.,
      30520.,  38776.,  47544.,  56824.,  24284.,  28924.,  33820.,  38972.,
      13690.,  19498.,  25690.,  32266.,  49844.,  62996.,  76916.,  91604.,
      66164.,  80852.,  96308.,  112532., 82484.,  98708.,  115700., 133460.,
      98804.,  116564., 135092., 154388., 68314.,  77962.,  87994.,  98410.,
      47800.,  59128.,  70968.,  83320.,  139888., 164592., 190320., 217072.,
      169840., 196592., 224368., 253168., 199792., 228592., 258416., 289264.,
      229744., 260592., 292464., 325360., 147256., 163704., 180664., 198136.,
      112440., 128888., 145848., 163320., 289648., 324592., 360560., 397552.,
      319600., 356592., 394608., 433648., 349552., 388592., 428656., 469744.,
      379504., 420592., 462704., 505840., 232376., 253944., 276024., 298616.,
      173050., 188074., 203482., 219274., 405428., 437012., 469364., 502484.,
      434036., 467156., 501044., 535700., 462644., 497300., 532724., 568916.,
      491252., 527444., 564404., 602132., 282970., 301834., 321082., 340714.,
      181340., 193148., 205212., 217532., 409400., 434040., 459192., 484856.,
      432568., 458232., 484408., 511096., 455736., 482424., 509624., 537336.,
      478904., 506616., 534840., 563576., 267932., 282300., 296924., 311804.,
      127070., 133870., 140798., 147854., 281084., 295196., 309564., 324188.,
      294716., 309340., 324220., 339356., 308348., 323484., 338876., 354524.,
      321980., 337628., 353532., 369692., 177022., 185102., 193310., 201646.};
  const std::array<int, 4> in_shape = {{1, 8, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,  560.,  820.,  940.,   1060.,  980.,   837.,   892.,
      1360., 1920., 2130., 2340.,  2096.,  1744.,  1820.,  2700.,
      3725., 4050., 4375., 3840.,  3140.,  3080.,  4450.,  6000.,
      6325., 6650., 5730., 4610.,  4340.,  6200.,  8275.,  8600.,
      8925., 7620., 6080., 5600.,  7950.,  10550., 10875., 11200.,
      9510., 7550., 6514., 9120.,  11950., 12260., 12570., 10544.,
      8278., 6516., 9050., 11770., 12040., 12310., 10250., 7992.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   10.,   16.,  22.,   22.,   15.,   10.,   32.,   68.,
      89.,  110., 96.,   60.,  42.,   114.,  219.,  264.,  309.,  252.,
      150., 112., 280.,  508., 586.,  664.,  520.,  300.,  222.,  520.,
      898., 976., 1054., 800., 450.,  306.,  681.,  1128., 1200., 1272.,
      933., 510., 307.,  668., 1085., 1142., 1199., 864.,  465.,  210.,
      451., 724., 757.,  790., 563.,  300.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,  4084.,  6035.,  6965.,  7895.,  7348.,  6309.,  6620.,
      10160., 14420., 16060., 17700., 15920., 13292., 13735., 20460.,
      28325., 30875., 33425., 29420., 24115., 23605., 34180., 46175.,
      48725., 51275., 44260., 35665., 33475., 47900., 64025., 66575.,
      69125., 59100., 47215., 43345., 61620., 81875., 84425., 86975.,
      73940., 58765., 50804., 71184., 93340., 95780., 98220., 82448.,
      64772., 51039., 70924., 92285., 94415., 96545., 80428., 62739.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,   101.,  143.,  150.,  105.,  58.,   204.,  454.,
      610.,  766.,  684.,  434.,  279.,  786.,  1545., 1887., 2229., 1842.,
      1107., 788.,  2008., 3692., 4292., 4892., 3864., 2244., 1628., 3848.,
      6692., 7292., 7892., 6024., 3404., 2313., 5166., 8583., 9141., 9699.,
      7134., 3909., 2350., 5124., 8338., 8782., 9226., 6660., 3590., 1619.,
      3482., 5597., 5855., 6113., 4362., 2327.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,  31112.,  46210.,  53530.,  60850.,  56840.,  48942.,  50920.,
      78432.,  111640., 124600., 137560., 124000., 103720., 106610., 159160.,
      220750., 240950., 261150., 230200., 188930., 184730., 267800., 362150.,
      382350., 402550., 347800., 280490., 262850., 376440., 503550., 523750.,
      543950., 465400., 372050., 340970., 485080., 644950., 665150., 685350.,
      583000., 463610., 401224., 562400., 737720., 757080., 776440., 652000.,
      512392., 403974., 561512., 730810., 747730., 764650., 637160., 497142.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   706.,   1018.,  1100.,  782.,   380.,
      1432.,  3284.,  4484.,  5684.,  5144.,  3292.,  2010.,  5796.,
      11550., 14214., 16878., 14052., 8490.,  5880.,  15152., 28072.,
      32776., 37480., 29744., 17336., 12440., 29552., 51592., 56296.,
      61000., 46704., 26456., 17970., 40212., 66918., 71310., 75702.,
      55764., 30594., 18380., 40120., 65348., 68852., 72356., 52280.,
      28204., 12710., 27356., 44002., 46042., 48082., 34332., 18326.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,  1404.,  1844.,  2240.,  2755.,  3280.,  3205.,  3760.,  3655.,
      4240.,  3428.,  3920.,  2961.,  3348.,  3052.,  3568.,  4720.,  5440.,
      6740.,  7680.,  7540.,  8520.,  8340.,  9360.,  7536.,  8384.,  6316.,
      6976.,  6455.,  7280.,  9660.,  10800., 13425., 14900., 14675., 16200.,
      15925., 17500., 14060., 15360., 11555., 12560., 11285., 12320., 16380.,
      17800., 22175., 24000., 23425., 25300., 24675., 26600., 21340., 22920.,
      17225., 18440., 16115., 17360., 23100., 24800., 30925., 33100., 32175.,
      34400., 33425., 35700., 28620., 30480., 22895., 24320., 20945., 22400.,
      29820., 31800., 39675., 42200., 40925., 43500., 42175., 44800., 35900.,
      38040., 28565., 30200., 24748., 26056., 34704., 36480., 45540., 47800.,
      46740., 49040., 47940., 50280., 40272., 42176., 31660., 33112., 24975.,
      26064., 34724., 36200., 45205., 47080., 46255., 48160., 47305., 49240.,
      39428., 41000., 30771., 31968.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   37.,   64.,   55.,   88.,
      62.,   88.,   45.,   60.,   18.,   40.,   76.,   128.,  182.,  272.,
      254.,  356.,  326.,  440.,  300.,  384.,  194.,  240.,  111.,  168.,
      330.,  456.,  669.,  876.,  831.,  1056., 993.,  1236., 834.,  1008.,
      507.,  600.,  340.,  448.,  888.,  1120., 1660., 2032., 1948., 2344.,
      2236., 2656., 1784., 2080., 1044., 1200., 740.,  888.,  1768., 2080.,
      3100., 3592., 3388., 3904., 3676., 4216., 2824., 3200., 1604., 1800.,
      1089., 1224., 2442., 2724., 4071., 4512., 4341., 4800., 4611., 5088.,
      3402., 3732., 1869., 2040., 1122., 1228., 2452., 2672., 3998., 4340.,
      4214., 4568., 4430., 4796., 3204., 3456., 1730., 1860., 779.,  840.,
      1678., 1804., 2701., 2896., 2827., 3028., 2953., 3160., 2110., 2252.,
      1127., 1200.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,   10665.,  13996.,  17116.,  21035.,  25175.,  24575.,  28955.,
      28115.,  32735.,  26476.,  30364.,  22941.,  26001.,  23420.,  27500.,
      36368.,  42064.,  52100.,  59540.,  58420.,  66180.,  64740.,  72820.,
      58640.,  65360.,  49244.,  54476.,  50035.,  56575.,  75060.,  84100.,
      104525., 116225., 114425., 126525., 124325., 136825., 109940., 120260.,
      90475.,  98455.,  88255.,  96475.,  128260., 139540., 173825., 188325.,
      183725., 198625., 193625., 208925., 167620., 180180., 135415., 145075.,
      126475., 136375., 181460., 194980., 243125., 260425., 253025., 270725.,
      262925., 281025., 225300., 240100., 180355., 191695., 164695., 176275.,
      234660., 250420., 312425., 332525., 322325., 342825., 332225., 353125.,
      282980., 300020., 225295., 238315., 195404., 205820., 274128., 288272.,
      359860., 377860., 369380., 387700., 378900., 397540., 318416., 333584.,
      250412., 261980., 197649., 206325., 274876., 286636., 357935., 372875.,
      366275., 381455., 374615., 390035., 312316., 324844., 243801., 253341.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   251.,   455.,   383.,
      635.,   450.,   650.,   333.,   449.,   106.,   274.,   516.,   916.,
      1294.,  1990.,  1846.,  2638.,  2398.,  3286.,  2244.,  2900.,  1466.,
      1826.,  783.,   1227.,  2406.,  3390.,  4965.,  6585.,  6225.,  7989.,
      7485.,  9393.,  6342.,  7710.,  3879.,  4611.,  2516.,  3364.,  6664.,
      8488.,  12572., 15500., 14828., 17948., 17084., 20396., 13704., 16040.,
      8052.,  9284.,  5636.,  6804.,  13544., 16008., 23852., 27740., 26108.,
      30188., 28364., 32636., 21864., 24840., 12452., 14004., 8451.,  9519.,
      18990., 21222., 31713., 35205., 33837., 37473., 35961., 39741., 26574.,
      29190., 14619., 15975., 8770.,  9610.,  19188., 20932., 31318., 34030.,
      33022., 35830., 34726., 37630., 25140., 27140., 13586., 14618., 6113.,
      6597.,  13178., 14178., 21227., 22775., 22223., 23819., 23219., 24863.,
      16602., 17730., 8873.,  9453.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,   83070.,   108968.,  133736.,  164290.,  197170.,  192370.,
      227170.,  220450.,  257170.,  208040.,  238952.,  180558.,  204894.,
      183400.,  215848.,  285408.,  330720.,  409560.,  468760.,  459800.,
      521560.,  510040.,  574360.,  462560.,  516064.,  388840.,  430504.,
      393890.,  445970.,  591640.,  663640.,  824750.,  917950.,  903550.,
      999950.,  982350.,  1081950., 869400.,  951640.,  715970.,  779570.,
      697970.,  763490.,  1015000., 1104920., 1376350., 1491950., 1455150.,
      1573950., 1533950., 1655950., 1328600., 1428760., 1073810., 1150850.,
      1002050., 1081010., 1438360., 1546200., 1927950., 2065950., 2006750.,
      2147950., 2085550., 2229950., 1787800., 1905880., 1431650., 1522130.,
      1306130., 1398530., 1861720., 1987480., 2479550., 2639950., 2558350.,
      2721950., 2637150., 2803950., 2247000., 2383000., 1789490., 1893410.,
      1552936., 1636072., 2179040., 2291936., 2861080., 3004760., 2936920.,
      3083160., 3012760., 3161560., 2532320., 2653408., 1991848., 2084200.,
      1572606., 1641870., 2187368., 2281256., 2848690., 2967970., 2915170.,
      3036370., 2981650., 3104770., 2486120., 2586152., 1940958., 2017134.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   1834.,   3418.,
      2842.,   4810.,   3420.,   4988.,   2558.,   3470.,   700.,    2012.,
      3768.,   6904.,   9716.,   15188.,  14036.,  20276.,  18356.,  25364.,
      17336.,  22520.,  11388.,  14236.,  5850.,   9354.,   18324.,  26100.,
      38190.,  51006.,  48126.,  62094.,  58062.,  73182.,  49428.,  60276.,
      30330.,  36138.,  19320.,  26040.,  51568.,  66032.,  97768.,  121000.,
      115624., 140392., 133480., 159784., 107376., 125936., 63224.,  73016.,
      43960.,  53240.,  105968., 125552., 187048., 217960., 204904., 237352.,
      222760., 256744., 172016., 195696., 98104.,  110456., 66570.,  75066.,
      149748., 167508., 250302., 278094., 267150., 296094., 283998., 314094.,
      210036., 230868., 115626., 126426., 69340.,  76028.,  151800., 165688.,
      247892., 269492., 261428., 283796., 274964., 298100., 199160., 215096.,
      107676., 115900., 48430.,  52286.,  104444., 112412., 168298., 180634.,
      176218., 188938., 184138., 197242., 131708., 140700., 70414.,  75038.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      62015.,  64460.,  66935.,  69440.,  89060.,  92400.,  95780.,  99200.,
      119425., 123700., 128025., 132400., 124325., 128700., 133125., 137600.,
      129225., 133700., 138225., 142800., 110820., 114480., 118180., 121920.,
      88775.,  91580.,  94415.,  97280.,  80915.,  83780.,  86675.,  89600.,
      115380., 119280., 123220., 127200., 153725., 158700., 163725., 168800.,
      158625., 163700., 168825., 174000., 163525., 168700., 173925., 179200.,
      139380., 143600., 147860., 152160., 111035., 114260., 117515., 120800.,
      96412.,  98992.,  101596., 104224., 135312., 138816., 142352., 145920.,
      177700., 182160., 186660., 191200., 182420., 186960., 191540., 196160.,
      187140., 191760., 196420., 201120., 157328., 161088., 164880., 168704.,
      123772., 126640., 129532., 132448., 97749.,  99900.,  102069., 104256.,
      135980., 138896., 141836., 144800., 177115., 180820., 184555., 188320.,
      181255., 185020., 188815., 192640., 185395., 189220., 193075., 196960.,
      154604., 157712., 160844., 164000., 120717., 123084., 125469., 127872.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   103.,   148.,   199.,   256.,   163.,   220.,
      283.,   352.,   202.,   248.,   298.,   352.,   153.,   180.,   209.,
      240.,   34.,    72.,    114.,   160.,   212.,   304.,   404.,   512.,
      566.,   728.,   902.,   1088.,  830.,   1016.,  1214.,  1424.,  1094.,
      1304.,  1526.,  1760.,  1044.,  1200.,  1364.,  1536.,  690.,   776.,
      866.,   960.,   339.,   444.,   555.,   672.,   1086.,  1320.,  1566.,
      1824.,  2289.,  2676.,  3081.,  3504.,  2901.,  3324.,  3765.,  4224.,
      3513.,  3972.,  4449.,  4944.,  3006.,  3336.,  3678.,  4032.,  1851.,
      2028.,  2211.,  2400.,  1156.,  1360.,  1572.,  1792.,  3112.,  3552.,
      4008.,  4480.,  5932.,  6640.,  7372.,  8128.,  7036.,  7792.,  8572.,
      9376.,  8140.,  8944.,  9772.,  10624., 6568.,  7136.,  7720.,  8320.,
      3876.,  4176.,  4484.,  4800.,  2676.,  2960.,  3252.,  3552.,  6472.,
      7072.,  7688.,  8320.,  11452., 12400., 13372., 14368., 12556., 13552.,
      14572., 15616., 13660., 14704., 15772., 16864., 10568., 11296., 12040.,
      12800., 6036.,  6416.,  6804.,  7200.,  4095.,  4356.,  4623.,  4896.,
      9222.,  9768.,  10326., 10896., 15429., 16284., 17157., 18048., 16473.,
      17364., 18273., 19200., 17517., 18444., 19389., 20352., 12966., 13608.,
      14262., 14928., 7143.,  7476.,  7815.,  8160.,  4282.,  4488.,  4698.,
      4912.,  9380.,  9808.,  10244., 10688., 15326., 15992., 16670., 17360.,
      16166., 16856., 17558., 18272., 17006., 17720., 18446., 19184., 12324.,
      12816., 13316., 13824., 6666.,  6920.,  7178.,  7440.,  2997.,  3116.,
      3237.,  3360.,  6466.,  6712.,  6962.,  7216.,  10423., 10804., 11191.,
      11584., 10915., 11308., 11707., 12112., 11407., 11812., 12223., 12640.,
      8162.,  8440.,  8722.,  9008.,  4365.,  4508.,  4653.,  4800.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      491275.,  510775.,  530515.,  550495.,  705860.,  732500.,  759460.,
      786740.,  946925.,  981025.,  1015525., 1050425., 985925.,  1020825.,
      1056125., 1091825., 1024925., 1060625., 1096725., 1133225., 879300.,
      908500.,  938020.,  967860.,  704635.,  727015.,  749635.,  772495.,
      641635.,  664495.,  687595.,  710935.,  915300.,  946420.,  977860.,
      1009620., 1219925., 1259625., 1299725., 1340225., 1258925., 1299425.,
      1340325., 1381625., 1297925., 1339225., 1380925., 1423025., 1106660.,
      1140340., 1174340., 1208660., 881875.,  907615.,  933595.,  959815.,
      766172.,  786764.,  807548.,  828524.,  1075536., 1103504., 1131728.,
      1160208., 1412740., 1448340., 1484260., 1520500., 1450340., 1486580.,
      1523140., 1560020., 1487940., 1524820., 1562020., 1599540., 1251152.,
      1281168., 1311440., 1341968., 984476.,  1007372., 1030460., 1053740.,
      777717.,  794889.,  812205.,  829665.,  1082044., 1105324., 1128796.,
      1152460., 1409555., 1439135., 1468955., 1499015., 1442555., 1472615.,
      1502915., 1533455., 1475555., 1506095., 1536875., 1567895., 1230652.,
      1255468., 1280476., 1305676., 961029.,  979929.,  998973.,  1018161.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   743.,    1091.,   1487.,   1931.,
      1199.,   1643.,   2135.,   2675.,   1530.,   1890.,   2282.,   2706.,
      1173.,   1385.,   1613.,   1857.,   202.,    498.,    826.,    1186.,
      1524.,   2244.,   3028.,   3876.,   4222.,   5494.,   6862.,   8326.,
      6286.,   7750.,   9310.,   10966.,  8350.,   10006.,  11758.,  13606.,
      8052.,   9284.,   10580.,  11940.,  5354.,   6034.,   6746.,   7490.,
      2511.,   3339.,   4215.,   5139.,   8238.,   10086.,  12030.,  14070.,
      17565.,  20625.,  23829.,  27177.,  22389.,  25737.,  29229.,  32865.,
      27213.,  30849.,  34629.,  38553.,  23406.,  26022.,  28734.,  31542.,
      14463.,  15867.,  17319.,  18819.,  8852.,   10468.,  12148.,  13892.,
      24040.,  27528.,  31144.,  34888.,  46076.,  51692.,  57500.,  63500.,
      54812.,  60812.,  67004.,  73388.,  63548.,  69932.,  76508.,  83276.,
      51432.,  55944.,  60584.,  65352.,  30420.,  32804.,  35252.,  37764.,
      20852.,  23108.,  25428.,  27812.,  50600.,  55368.,  60264.,  65288.,
      89756.,  97292.,  105020., 112940., 98492.,  106412., 114524., 122828.,
      107228., 115532., 124028., 132716., 83112.,  88904.,  94824.,  100872.,
      47540.,  50564.,  53652.,  56804.,  32247.,  34323.,  36447.,  38619.,
      72702.,  77046.,  81486.,  86022.,  121749., 128553., 135501., 142593.,
      130029., 137121., 144357., 151737., 138309., 145689., 153213., 160881.,
      102462., 107574., 112782., 118086., 56487.,  59139.,  61839.,  64587.,
      33850.,  35490.,  37162.,  38866.,  74196.,  77604.,  81076.,  84612.,
      121294., 126598., 131998., 137494., 127966., 133462., 139054., 144742.,
      134638., 140326., 146110., 151990., 97620.,  101540., 105524., 109572.,
      52826.,  54850.,  56906.,  58994.,  23741.,  24689.,  25653.,  26633.,
      51242.,  53202.,  55194.,  57218.,  82631.,  85667.,  88751.,  91883.,
      86543.,  89675.,  92855.,  96083.,  90455.,  93683.,  96959.,  100283.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,   275166.,   309870.,   345726.,   405992.,   453800.,
      503144.,   554024.,   617410.,   681010.,   746530.,   813970.,
      727330.,   794770.,   864130.,   935410.,   837250.,   908530.,
      981730.,   1056850.,  794600.,   854696.,   916328.,   979496.,
      692622.,   739998.,   788526.,   838206.,   694120.,   757288.,
      821992.,   888232.,   1086432.,  1174752.,  1265120.,  1357536.,
      1566040.,  1681560.,  1799640.,  1920280.,  1763800.,  1884440.,
      2007640.,  2133400.,  1961560.,  2087320.,  2215640.,  2346520.,
      1784800.,  1889504.,  1996256.,  2105056.,  1504360.,  1585960.,
      1669096.,  1753768.,  1511810.,  1613810.,  1717730.,  1823570.,
      2278360.,  2419480.,  2563160.,  2709400.,  3184750.,  3367550.,
      3553550.,  3742750.,  3495950.,  3685150.,  3877550.,  4073150.,
      3807150.,  4002750.,  4201550.,  4403550.,  3376600.,  3538200.,
      3702360.,  3869080.,  2785730.,  2910770.,  3037730.,  3166610.,
      2711330.,  2840210.,  2971010.,  3103730.,  3949400.,  4126360.,
      4305880.,  4487960.,  5363150.,  5590750.,  5821550.,  6055550.,
      5674350.,  5908350.,  6145550.,  6385950.,  5985550.,  6225950.,
      6469550.,  6716350.,  5191000.,  5388440.,  5588440.,  5791000.,
      4200290.,  4352210.,  4506050.,  4661810.,  3910850.,  4066610.,
      4224290.,  4383890.,  5620440.,  5833240.,  6048600.,  6266520.,
      7541550.,  7813950.,  8089550.,  8368350.,  7852750.,  8131550.,
      8413550.,  8698750.,  8163950.,  8449150.,  8737550.,  9029150.,
      7005400.,  7238680.,  7474520.,  7712920.,  5614850.,  5793650.,
      5974370.,  6157010.,  5110370.,  5293010.,  5477570.,  5664050.,
      7291480.,  7540120.,  7791320.,  8045080.,  9719950.,  10037150.,
      10357550., 10681150., 10031150., 10354750., 10681550., 11011550.,
      10342350., 10672350., 11005550., 11341950., 8819800.,  9088920.,
      9360600.,  9634840.,  7029410.,  7235090.,  7442690.,  7652210.,
      6108904.,  6273448.,  6439528.,  6607144.,  8576480.,  8799968.,
      9025504.,  9253088.,  11266520., 11551000., 11838040., 12127640.,
      11566680., 11856280., 12148440., 12443160., 11866840., 12161560.,
      12458840., 12758680., 9979360.,  10219232., 10461152., 10705120.,
      7853032.,  8036008.,  8220520.,  8406568.,  6204654.,  6341886.,
      6480270.,  6619806.,  8633192.,  8819240.,  9006824.,  9195944.,
      11247010., 11483410., 11721730., 11961970., 11510530., 11750770.,
      11992930., 12237010., 11774050., 12018130., 12264130., 12512050.,
      9820520.,  10018856., 10218728., 10420136., 7669422.,  7820478.,
      7972686.,  8126046.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    5626.,    8362.,
      11482.,   14986.,   9178.,    12682.,   16570.,   20842.,   11900.,
      14748.,   17852.,   21212.,   9182.,    10862.,   12670.,   14606.,
      1340.,    3676.,    6268.,    9116.,    11512.,   17208.,   23416.,
      30136.,   32564.,   42644.,   53492.,   65108.,   48884.,   60500.,
      72884.,   86036.,   65204.,   78356.,   92276.,   106964.,  63224.,
      73016.,   83320.,   94136.,   42172.,   47580.,   53244.,   59164.,
      19290.,   25866.,   32826.,   40170.,   64116.,   78804.,   94260.,
      110484.,  137550.,  161886.,  187374.,  214014.,  175854.,  202494.,
      230286.,  259230.,  214158.,  243102.,  273198.,  304446.,  184692.,
      205524.,  227124.,  249492.,  114330.,  125514.,  137082.,  149034.,
      69240.,   82104.,   95480.,   109368.,  188912.,  216688.,  245488.,
      275312.,  363112.,  407848.,  454120.,  501928.,  432616.,  480424.,
      529768.,  580648.,  502120.,  553000.,  605416.,  659368.,  407024.,
      442992.,  479984.,  518000.,  241016.,  260024.,  279544.,  299576.,
      164600.,  182584.,  201080.,  220088.,  400112.,  438128.,  477168.,
      517232.,  710632.,  770728.,  832360.,  895528.,  780136.,  843304.,
      908008.,  974248.,  849640.,  915880.,  983656.,  1052968., 659184.,
      705392.,  752624.,  800880.,  377336.,  401464.,  426104.,  451256.,
      255930.,  272490.,  289434.,  306762.,  577332.,  611988.,  647412.,
      683604.,  967278.,  1021566., 1077006., 1133598., 1033230., 1089822.,
      1147566., 1206462., 1099182., 1158078., 1218126., 1279326., 814644.,
      855444.,  897012.,  939348.,  449274.,  470442.,  491994.,  513930.,
      269180.,  282268.,  295612.,  309212.,  590200.,  617400.,  645112.,
      673336.,  965108.,  1007444., 1050548., 1094420., 1018292., 1062164.,
      1106804., 1152212., 1071476., 1116884., 1163060., 1210004., 777080.,
      808376.,  840184.,  872504.,  420604.,  436764.,  453180.,  469852.,
      188990.,  196558.,  204254.,  212078.,  407996.,  423644.,  439548.,
      455708.,  658042.,  682282.,  706906.,  731914.,  689242.,  714250.,
      739642.,  765418.,  720442.,  746218.,  772378.,  798922.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.};
  const std::array<int, 4> in_shape = {{1, 8, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,  610.,   890.,   1010.,  1130.,  1250.,  1144.,  969.,
      988.,  1500.,  2110.,  2320.,  2530.,  2740.,  2436.,  2014.,
      2030., 3000.,  4125.,  4450.,  4775.,  5100.,  4450.,  3620.,
      3470., 5000.,  6725.,  7050.,  7375.,  7700.,  6610.,  5300.,
      4910., 7000.,  9325.,  9650.,  9975.,  10300., 8770.,  6980.,
      6350., 9000.,  11925., 12250., 12575., 12900., 10930., 8660.,
      7396., 10340., 13530., 13840., 14150., 14460., 12108., 9490.,
      7404., 10270., 13340., 13610., 13880., 14150., 11764., 9159.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   20.,   30.,   34.,   31.,   20.,   11.,   35.,
      74.,   130.,  166.,  161.,  133.,  80.,   50.,   133.,  252.,  410.,
      488.,  441.,  346.,  200.,  138.,  338.,  604.,  940.,  1076., 934.,
      710.,  400.,  278.,  638.,  1084., 1620., 1756., 1474., 1090., 600.,
      392.,  859.,  1404., 2030., 2156., 1755., 1264., 680.,  397.,  853.,
      1370., 1950., 2050., 1643., 1167., 620.,  273.,  580.,  922.,  1300.,
      1358., 1078., 759.,  400.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,  4460.,  6565.,   7495.,   8425.,   9355.,   8612.,  7329.,
      7352.,  11232., 15880.,  17520.,  19160.,  20800.,  18560., 15392.,
      15355., 22780., 31425.,  33975.,  36525.,  39075.,  34180., 27865.,
      26635., 38460., 51825.,  54375.,  56925.,  59475.,  51140., 41065.,
      37915., 54140., 72225.,  74775.,  77325.,  79875.,  68100., 54265.,
      49195., 69820., 92625.,  95175.,  97725.,  100275., 85060., 67465.,
      57728., 80768., 105760., 108200., 110640., 113080., 94752., 74312.,
      58035., 80540., 104665., 106795., 108925., 111055., 92372., 71949.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   59.,    124.,   196.,   233.,   218.,  143.,
      64.,   224.,  496.,   896.,   1168.,  1156.,  968.,  588.,
      337.,  926.,  1791.,  2956.,  3556.,  3249.,  2570., 1495.,
      984.,  2448., 4424.,  6944.,  8000.,  6992.,  5344., 3024.,
      2064., 4768., 8144.,  12224., 13280., 11192., 8304., 4584.,
      2989., 6566., 10755., 15580., 16564., 13509., 9746., 5251.,
      3060., 6584., 10588., 15088., 15872., 12736., 9056., 4816.,
      2117., 4502., 7163.,  10108., 10564., 8393.,  5914., 3119.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,  34024.,  50330.,  57650.,  64970.,  72290.,  66760.,  56958.,
      56632.,  86816.,  123080., 136040., 149000., 161960., 144800., 120280.,
      119330., 177400., 245150., 265350., 285550., 305750., 267800., 218570.,
      208610., 301560., 406750., 426950., 447150., 467350., 402200., 323210.,
      297890., 425720., 568350., 588550., 608750., 628950., 536600., 427850.,
      387170., 549880., 729950., 750150., 770350., 790550., 671000., 532490.,
      456088., 638368., 836200., 855560., 874920., 894280., 749600., 588088.,
      459510., 637864., 829130., 846050., 862970., 879890., 732040., 570318.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   856.,    1400.,   1714.,   1628.,  1078.,
      420.,   1576.,  3596.,  6608.,   8720.,   8732.,   7368.,  4500.,
      2450.,  6868.,  13446., 22376.,  27080.,  24894.,  19780., 11546.,
      7400.,  18576., 33784., 53280.,  61600.,  54040.,  41424., 23496.,
      15880., 36816., 63064., 94880.,  103200., 87160.,  64784., 35816.,
      23330., 51316., 84150., 122024., 129800., 105966., 76516., 41258.,
      24020., 51720., 83228., 118672., 124880., 100268., 71336., 37956.,
      16670., 35468., 56458., 79704.,  83320.,  66226.,  46684., 24630.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,  1536.,  2020.,  2440.,  3005.,  3560.,  3455.,  4040.,  3905.,
      4520.,  4355.,  5000.,  4036.,  4576.,  3453.,  3876.,  3400.,  3952.,
      5232.,  6000.,  7440.,  8440.,  8240.,  9280.,  9040.,  10120., 9840.,
      10960., 8816.,  9744.,  7336.,  8056.,  7235.,  8120.,  10780., 12000.,
      14925., 16500., 16175., 17800., 17425., 19100., 18675., 20400., 16380.,
      17800., 13385., 14480., 12755., 13880., 18460., 20000., 24925., 26900.,
      26175., 28200., 27425., 29500., 28675., 30800., 24700., 26440., 19865.,
      21200., 18275., 19640., 26140., 28000., 34925., 37300., 36175., 38600.,
      37425., 39900., 38675., 41200., 33020., 35080., 26345., 27920., 23795.,
      25400., 33820., 36000., 44925., 47700., 46175., 49000., 47425., 50300.,
      48675., 51600., 41340., 43720., 32825., 34640., 28144., 29584., 39408.,
      41360., 51640., 54120., 52840., 55360., 54040., 56600., 55240., 57840.,
      46320., 48432., 36352., 37960., 28419., 29616., 39460., 41080., 51305.,
      53360., 52355., 54440., 53405., 55520., 54455., 56600., 45316., 47056.,
      35313., 36636.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   44.,   80.,   76.,   120.,
      97.,   136.,  94.,   124.,  63.,   80.,   20.,   44.,   84.,   140.,
      200.,  296.,  376.,  520.,  504.,  664.,  512.,  644.,  436.,  532.,
      268.,  320.,  137.,  200.,  394.,  532.,  783.,  1008., 1316., 1640.,
      1604., 1952., 1485., 1764., 1186., 1384., 695.,  800.,  432.,  552.,
      1096., 1352., 2008., 2416., 3184., 3760., 3696., 4304., 3256., 3736.,
      2504., 2840., 1424., 1600., 952.,  1112., 2216., 2552., 3808., 4336.,
      5744., 6480., 6256., 7024., 5296., 5896., 3944., 4360., 2184., 2400.,
      1421., 1568., 3130., 3436., 5139., 5616., 7460., 8120., 7940., 8624.,
      6489., 7020., 4690., 5056., 2531., 2720., 1472., 1588., 3172., 3412.,
      5108., 5480., 7288., 7800., 7672., 8200., 6164., 6572., 4388., 4668.,
      2336., 2480., 1025., 1092., 2182., 2320., 3475., 3688., 4908., 5200.,
      5132., 5432., 4081., 4312., 2878., 3036., 1519., 1600.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,   11685.,  15356.,  18668.,  22975.,  27355.,  26515.,  31135.,
      30055.,  34915.,  33595.,  38695.,  31244.,  35516.,  26805.,  30153.,
      26132.,  30500.,  40368.,  46448.,  57580.,  65500.,  63900.,  72140.,
      70220.,  78780.,  76540.,  85420.,  68720.,  76080.,  57284.,  62996.,
      56155.,  63175.,  83860.,  93540.,  116325., 128825., 126225., 139125.,
      136125., 149425., 146025., 159725., 128260., 139540., 104935., 113635.,
      99835.,  108775., 144660., 156900., 195525., 211225., 205425., 221525.,
      215325., 231825., 225225., 242125., 194180., 208020., 156295., 166915.,
      143515., 154375., 205460., 220260., 274725., 293625., 284625., 303925.,
      294525., 314225., 304425., 324525., 260100., 276500., 207655., 220195.,
      187195., 199975., 266260., 283620., 353925., 376025., 363825., 386325.,
      373725., 396625., 383625., 406925., 326020., 344980., 259015., 273475.,
      222308., 233780., 311408., 326960., 408220., 427980., 417740., 437820.,
      427260., 447660., 436780., 457500., 366384., 383216., 287636., 300452.,
      224985., 234525., 312476., 325388., 406375., 422755., 414715., 431335.,
      423055., 439915., 431395., 448495., 359084., 372956., 279885., 290433.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   292.,   564.,   532.,
      868.,   707.,   1007.,  698.,   930.,   473.,   605.,   118.,   302.,
      572.,   1004.,  1426.,  2170.,  2744.,  3864.,  3736.,  4984.,  3850.,
      4882.,  3308.,  4060.,  2046.,  2454.,  979.,   1471.,  2894.,  3974.,
      5841.,  7605.,  9916.,  12460., 12172., 14908., 11349., 13545., 9110.,
      10670., 5359.,  6187.,  3228.,  4172.,  8280.,  10296., 15284., 18500.,
      24368., 28912., 28400., 33200., 25124., 28916., 19384., 22040., 11052.,
      12444., 7308.,  8572.,  17080., 19736., 29444., 33620., 44528., 50352.,
      48560., 54640., 41204., 45956., 30744., 34040., 17052., 18764., 11083.,
      12247., 24446., 26870., 40185., 43965., 58396., 63628., 62188., 67612.,
      50877., 55089., 36806., 39710., 19879., 21379., 11550., 12470., 24908.,
      26812., 40138., 43090., 57304., 61368., 60344., 64536., 48514., 51754.,
      34556., 36780., 18406., 19550., 8069.,  8601.,  17186., 18282., 27383.,
      29075., 38692., 41012., 40468., 42852., 32195., 34031., 22714., 23970.,
      11993., 12637.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,   91086.,   119656.,  145960.,  179570.,  214370.,  207650.,
      244370.,  235730.,  274370.,  263810.,  304370.,  245800.,  279784.,
      211182.,  237822.,  204808.,  239560.,  317024.,  365408.,  452920.,
      515960.,  503160.,  568760.,  553400.,  621560.,  603640.,  674360.,
      542560.,  601184.,  452680.,  498184.,  442370.,  498290.,  661400.,
      738520.,  918350.,  1017950., 997150.,  1099950., 1075950., 1181950.,
      1154750., 1263950., 1015000., 1104920., 830930.,  900290.,  789890.,
      861170.,  1145240., 1242840., 1548750., 1673950., 1627550., 1755950.,
      1706350., 1837950., 1785150., 1919950., 1539800., 1650200., 1239890.,
      1324610., 1137410., 1224050., 1629080., 1747160., 2179150., 2329950.,
      2257950., 2411950., 2336750., 2493950., 2415550., 2575950., 2064600.,
      2195480., 1648850., 1748930., 1484930., 1586930., 2112920., 2251480.,
      2809550., 2985950., 2888350., 3067950., 2967150., 3149950., 3045950.,
      3231950., 2589400., 2740760., 2057810., 2173250., 1767112., 1858696.,
      2475872., 2600032., 3246200., 3403960., 3322040., 3482360., 3397880.,
      3560760., 3473720., 3639160., 2914400., 3048800., 2288392., 2390728.,
      1790430., 1866606., 2487016., 2590120., 3234770., 3365570., 3301250.,
      3433970., 3367730., 3502370., 3434210., 3570770., 2858920., 2969704.,
      2228622., 2312862.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   2104.,   4216.,
      3960.,   6584.,   5386.,   7738.,   5372.,   7196.,   3662.,   4702.,
      780.,    2220.,   4184.,   7576.,   10724.,  16580.,  20912.,  29744.,
      28720.,  38576.,  29828.,  37988.,  25752.,  31704.,  15980.,  19212.,
      7370.,   11258.,  22132.,  30676.,  45054.,  59022.,  76904.,  97064.,
      94760.,  116456., 88686.,  106110., 71380.,  83764.,  42074.,  48650.,
      24920.,  32408.,  64304.,  80304.,  119176., 144712., 190560., 226656.,
      222560., 260704., 197320., 227464., 152496., 173616., 87064.,  98136.,
      57240.,  67288.,  134064., 155184., 231496., 264712., 350560., 396896.,
      382560., 430944., 325000., 362824., 242736., 268976., 134744., 148376.,
      87530.,  96794.,  193204., 212500., 317790., 347886., 462056., 503720.,
      492200., 535400., 402894., 436446., 291604., 314740., 157562., 169514.,
      91500.,  98828.,  197400., 212568., 318212., 341732., 454448., 486832.,
      478640., 512048., 384932., 410756., 274264., 291992., 146124., 155244.,
      64030.,  68270.,  136412., 145148., 217402., 230890., 307256., 325752.,
      321400., 340408., 255754., 270394., 180476., 190492., 95310.,  100446.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      70415.,  73100.,  75815.,  78560.,  100900., 104560., 108260., 112000.,
      135025., 139700., 144425., 149200., 139925., 144700., 149525., 154400.,
      144825., 149700., 154625., 159600., 149725., 154700., 159725., 164800.,
      128020., 132080., 136180., 140320., 102275., 105380., 108515., 111680.,
      92015.,  95180.,  98375.,  101600., 130980., 135280., 139620., 144000.,
      174225., 179700., 185225., 190800., 179125., 184700., 190325., 196000.,
      184025., 189700., 195425., 201200., 188925., 194700., 200525., 206400.,
      160660., 165360., 170100., 174880., 127715., 131300., 134915., 138560.,
      109732., 112576., 115444., 118336., 153776., 157632., 161520., 165440.,
      201660., 206560., 211500., 216480., 206380., 211360., 216380., 221440.,
      211100., 216160., 221260., 226400., 215820., 220960., 226140., 231360.,
      181104., 185280., 189488., 193728., 142228., 145408., 148612., 151840.,
      111309., 113676., 116061., 118464., 154636., 157840., 161068., 164320.,
      201155., 205220., 209315., 213440., 205295., 209420., 213575., 217760.,
      209435., 213620., 217835., 222080., 213575., 217820., 222095., 226400.,
      177820., 181264., 184732., 188224., 138633., 141252., 143889., 146544.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   116.,   176.,   244.,   320.,   228.,   304.,
      388.,   480.,   319.,   388.,   463.,   544.,   322.,   376.,   434.,
      496.,   221.,   252.,   285.,   320.,   38.,    80.,    126.,   176.,
      236.,   336.,   444.,   560.,   626.,   800.,   986.,   1184.,  1240.,
      1504.,  1784.,  2080.,  1720.,  2016.,  2328.,  2656.,  1802.,  2048.,
      2306.,  2576.,  1564.,  1744.,  1932.,  2128.,  974.,   1072.,  1174.,
      1280.,  431.,   548.,   671.,   800.,   1318.,  1576.,  1846.,  2128.,
      2709.,  3132.,  3573.,  4032.,  4652.,  5264.,  5900.,  6560.,  5756.,
      6416.,  7100.,  7808.,  5409.,  5940.,  6489.,  7056.,  4366.,  4744.,
      5134.,  5536.,  2579.,  2780.,  2987.,  3200.,  1500.,  1728.,  1964.,
      2208.,  3896.,  4384.,  4888.,  5408.,  7252.,  8032.,  8836.,  9664.,
      11632., 12736., 13872., 15040., 13616., 14784., 15984., 17216., 12100.,
      13024., 13972., 14944., 9368.,  10016., 10680., 11360., 5356.,  5696.,
      6044.,  6400.,  3500.,  3808.,  4124.,  4448.,  8216.,  8864.,  9528.,
      10208., 14212., 15232., 16276., 17344., 21552., 22976., 24432., 25920.,
      23536., 25024., 26544., 28096., 20020., 21184., 22372., 23584., 14968.,
      15776., 16600., 17440., 8316.,  8736.,  9164.,  9600.,  5399.,  5684.,
      5975.,  6272.,  11926., 12520., 13126., 13744., 19629., 20556., 21501.,
      22464., 28556., 29840., 31148., 32480., 30428., 31760., 33116., 34496.,
      24921., 25956., 27009., 28080., 18046., 18760., 19486., 20224., 9755.,
      10124., 10499., 10880., 5662.,  5888.,  6118.,  6352.,  12220., 12688.,
      13164., 13648., 19706., 20432., 21170., 21920., 28152., 29152., 30168.,
      31200., 29656., 30688., 31736., 32800., 23858., 24656., 25466., 26288.,
      17004., 17552., 18108., 18672., 9062.,  9344.,  9630.,  9920.,  3969.,
      4100.,  4233.,  4368.,  8458.,  8728.,  9002.,  9280.,  13483., 13900.,
      14323., 14752., 19060., 19632., 20212., 20800., 19940., 20528., 21124.,
      21728., 15871., 16324., 16783., 17248., 11202., 11512., 11826., 12144.,
      5917.,  6076.,  6237.,  6400.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  557995.,  579415.,  601075.,  622975.,  799940.,
      829140.,  858660.,  888500.,  1070925., 1108225., 1145925., 1184025.,
      1109925., 1148025., 1186525., 1225425., 1148925., 1187825., 1227125.,
      1266825., 1187925., 1227625., 1267725., 1308225., 1016100., 1048500.,
      1081220., 1114260., 812035.,  836815.,  861835.,  887095.,  729835.,
      755095.,  780595.,  806335.,  1039300., 1073620., 1108260., 1143220.,
      1382925., 1426625., 1470725., 1515225., 1421925., 1466425., 1511325.,
      1556625., 1460925., 1506225., 1551925., 1598025., 1499925., 1546025.,
      1592525., 1639425., 1275940., 1313460., 1351300., 1389460., 1014595.,
      1043215., 1072075., 1101175., 872204.,  894908.,  917804.,  940892.,
      1222544., 1253328., 1284368., 1315664., 1603540., 1642660., 1682100.,
      1721860., 1641140., 1680900., 1720980., 1761380., 1678740., 1719140.,
      1759860., 1800900., 1716340., 1757380., 1798740., 1840420., 1440528.,
      1473872., 1507472., 1541328., 1131500., 1156892., 1182476., 1208252.,
      885765.,  904665.,  923709.,  942897.,  1230716., 1256300., 1282076.,
      1308044., 1601155., 1633615., 1666315., 1699255., 1634155., 1667095.,
      1700275., 1733695., 1667155., 1700575., 1734235., 1768135., 1700155.,
      1734055., 1768195., 1802575., 1415708., 1443212., 1470908., 1498796.,
      1103853., 1124769., 1145829., 1167033.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   820.,    1284.,   1812.,   2404.,
      1684.,   2276.,   2932.,   3652.,   2423.,   2963.,   3551.,   4187.,
      2474.,   2898.,   3354.,   3842.,   1709.,   1953.,   2213.,   2489.,
      226.,    554.,    914.,    1306.,   1700.,   2484.,   3332.,   4244.,
      4678.,   6046.,   7510.,   9070.,   9416.,   11496.,  13704.,  16040.,
      13192.,  15528.,  17992.,  20584.,  13942.,  15886.,  17926.,  20062.,
      12164.,  13588.,  15076.,  16628.,  7602.,   8378.,   9186.,   10026.,
      3223.,   4147.,   5119.,   6139.,   10046.,  12086.,  14222.,  16454.,
      20853.,  24201.,  27693.,  31329.,  36028.,  40876.,  45916.,  51148.,
      44764.,  49996.,  55420.,  61036.,  42237.,  46449.,  50805.,  55305.,
      34190.,  37190.,  40286.,  43478.,  20239.,  21835.,  23479.,  25171.,
      11556.,  13364.,  15236.,  17172.,  30216.,  34088.,  38088.,  42216.,
      56492.,  62684.,  69068.,  75644.,  90896.,  99664.,  108688., 117968.,
      106640., 115920., 125456., 135248., 94988.,  102332., 109868., 117596.,
      73672.,  78824.,  84104.,  89512.,  42180.,  44884.,  47652.,  50484.,
      27396.,  29844.,  32356.,  34932.,  64456.,  69608.,  74888.,  80296.,
      111692., 119804., 128108., 136604., 169616., 180944., 192528., 204368.,
      185360., 197200., 209296., 221648., 157868., 167132., 176588., 186236.,
      118152., 124584., 131144., 137832., 65700.,  69044.,  72452.,  75924.,
      42631.,  44899.,  47215.,  49579.,  94238.,  98966.,  103790., 108710.,
      155205., 162585., 170109., 177777., 225916., 236140., 246556., 257164.,
      240796., 251404., 262204., 273196., 197325., 205569., 213957., 222489.,
      142958., 148646., 154430., 160310., 77311.,  80251.,  83239.,  86275.,
      44850.,  46650.,  48482.,  50346.,  96836.,  100564., 104356., 108212.,
      156214., 161998., 167878., 173854., 223240., 231208., 239304., 247528.,
      235208., 243432., 251784., 260264., 189286., 195646., 202102., 208654.,
      134948., 139316., 143748., 148244., 71938.,  74186.,  76466.,  78778.,
      31493.,  32537.,  33597.,  34673.,  67130.,  69282.,  71466.,  73682.,
      107039., 110363., 113735., 117155., 151348., 155908., 160532., 165220.,
      158356., 163044., 167796., 172612., 126071., 129683., 133343., 137051.,
      89002.,  91474.,  93978.,  96514.,  47021.,  48289.,  49573.,  50873.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,   303486.,   340494.,   378654.,   446824.,   497704.,
      550120.,   604072.,   676130.,   743570.,   812930.,   884210.,
      786050.,   857330.,   930530.,   1005650.,  895970.,   971090.,
      1048130.,  1127090.,  1005890.,  1084850.,  1165730.,  1248530.,
      941800.,   1008040.,  1075816.,  1145128.,  812238.,   864222.,
      917358.,   971646.,   776872.,   844648.,   913960.,   984808.,
      1209056.,  1303520.,  1400032.,  1498592.,  1734680.,  1857880.,
      1983640.,  2111960.,  1932440.,  2060760.,  2191640.,  2325080.,
      2130200.,  2263640.,  2399640.,  2538200.,  2327960.,  2466520.,
      2607640.,  2751320.,  2098400.,  2213344.,  2330336.,  2449376.,
      1754920.,  1844200.,  1935016.,  2027368.,  1700930.,  1810610.,
      1922210.,  2035730.,  2551000.,  2702360.,  2856280.,  3012760.,
      3551150.,  3746750.,  3945550.,  4147550.,  3862350.,  4064350.,
      4269550.,  4477950.,  4173550.,  4381950.,  4593550.,  4808350.,
      4484750.,  4699550.,  4917550.,  5138750.,  3949400.,  4126360.,
      4305880.,  4487960.,  3238370.,  3374930.,  3513410.,  3653810.,
      3071810.,  3212210.,  3354530.,  3498770.,  4460760.,  4653080.,
      4847960.,  5045400.,  6040750.,  6287550.,  6537550.,  6790750.,
      6351950.,  6605150.,  6861550.,  7121150.,  6663150.,  6922750.,
      7185550.,  7451550.,  6974350.,  7240350.,  7509550.,  7781950.,
      6023000.,  6240920.,  6461400.,  6684440.,  4855010.,  5022290.,
      5191490.,  5362610.,  4442690.,  4613810.,  4786850.,  4961810.,
      6370520.,  6603800.,  6839640.,  7078040.,  8530350.,  8828350.,
      9129550.,  9433950.,  8841550.,  9145950.,  9453550.,  9764350.,
      9152750.,  9463550.,  9777550.,  10094750., 9463950.,  9781150.,
      10101550., 10425150., 8096600.,  8355480.,  8616920.,  8880920.,
      6471650.,  6669650.,  6869570.,  7071410.,  5813570.,  6015410.,
      6219170.,  6424850.,  8280280.,  8554520.,  8831320.,  9110680.,
      11019950., 11369150., 11721550., 12077150., 11331150., 11686750.,
      12045550., 12407550., 11642350., 12004350., 12369550., 12737950.,
      11953550., 12321950., 12693550., 13068350., 10170200., 10470040.,
      10772440., 11077400., 8088290.,  8317010.,  8547650.,  8780210.,
      6955048.,  7136488.,  7319464.,  7503976.,  9749728.,  9995744.,
      10243808., 10493920., 12789400., 13102040., 13417240., 13735000.,
      13089560., 13407320., 13727640., 14050520., 13389720., 13712600.,
      14038040., 14366040., 13689880., 14017880., 14348440., 14681560.,
      11491040., 11757536., 12026080., 12296672., 9026728.,  9229672.,
      9434152.,  9640168.,  7067310.,  7218366.,  7370574.,  7523934.,
      9820264.,  10024744., 10230760., 10438312., 12776930., 13036370.,
      13297730., 13561010., 13040450., 13303730., 13568930., 13836050.,
      13303970., 13571090., 13840130., 14111090., 13567490., 13838450.,
      14111330., 14386130., 11298280., 11518120., 11739496., 11962408.,
      8809998.,  8977182.,  9145518.,  9315006.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID1x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    6136.,    9784.,
      13944.,   18616.,   12920.,   17592.,   22776.,   28472.,   18874.,
      23146.,   27802.,   32842.,   19388.,   22748.,   26364.,   30236.,
      13438.,   15374.,   17438.,   19630.,   1500.,    4092.,    6940.,
      10044.,   12856.,   19064.,   25784.,   33016.,   36116.,   46964.,
      58580.,   70964.,   73328.,   89840.,   107376.,  125936.,  103280.,
      121840.,  141424.,  162032.,  109652.,  125108.,  141332.,  158324.,
      95928.,   107256.,  119096.,  131448.,  60060.,   66236.,   72668.,
      79356.,   24890.,   32234.,   39962.,   48074.,   78388.,   94612.,
      111604.,  129364.,  163566.,  190206.,  217998.,  246942.,  283496.,
      322088.,  362216.,  403880.,  353000.,  394664.,  437864.,  482600.,
      333774.,  367326.,  402030.,  437886.,  270580.,  294484.,  319156.,
      344596.,  160346.,  173066.,  186170.,  199658.,  90680.,   105080.,
      119992.,  135416.,  237936.,  268784.,  300656.,  333552.,  445864.,
      495208.,  546088.,  598504.,  718560.,  788448.,  860384.,  934368.,
      844000.,  917984.,  994016.,  1072096., 752680.,  811240.,  871336.,
      932968.,  584304.,  625392.,  667504.,  710640.,  334776.,  356344.,
      378424.,  401016.,  216760.,  236280.,  256312.,  276856.,  510576.,
      551664.,  593776.,  636912.,  885544.,  950248.,  1016488., 1084264.,
      1345760., 1436128., 1528544., 1623008., 1471200., 1565664., 1662176.,
      1760736., 1253800., 1327720., 1403176., 1480168., 938864.,  990192.,
      1042544., 1095920., 522296.,  548984.,  576184.,  603896.,  338810.,
      356906.,  375386.,  394250.,  749236.,  786964.,  825460.,  864724.,
      1234350., 1293246., 1353294., 1414494., 1797224., 1878824., 1961960.,
      2046632., 1915880., 2000552., 2086760., 2174504., 1570446., 1636254.,
      1703214., 1771326., 1138036., 1183444., 1229620., 1276564., 615578.,
      639050.,  662906.,  687146.,  357020.,  371388.,  386012.,  400892.,
      771000.,  800760.,  831032.,  861816.,  1243988., 1290164., 1337108.,
      1384820., 1778032., 1841648., 1906288., 1971952., 1873520., 1939184.,
      2005872., 2073584., 1507988., 1558772., 1610324., 1662644., 1075256.,
      1110136., 1145528., 1181432., 573276.,  591228.,  609436.,  627900.,
      250910.,  259246.,  267710.,  276302.,  534908.,  552092.,  569532.,
      587228.,  853018.,  879562.,  906490.,  933802.,  1206264., 1242680.,
      1279608., 1317048., 1262200., 1299640., 1337592., 1376056., 1004986.,
      1033834., 1063066., 1092682., 709564.,  729308.,  749308.,  769564.,
      374910.,  385038.,  395294.,  405678.};
  const std::array<int, 4> in_shape = {{1, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,   510.,   750.,   870.,   816.,   705.,   796.,   1220.,  1730.,
      1940.,  1756.,  1474.,  1610.,  2400.,  3325.,  3650.,  3230.,  2660.,
      2690.,  3900.,  5275.,  5600.,  4850.,  3920.,  3544.,  5020.,  6650.,
      6960.,  5908.,  4690.,  3792.,  5310.,  6960.,  7230.,  6072.,  4773.,
      2586.,  3750.,  5070.,  5190.,  4488.,  3621.,  4900.,  6980.,  9290.,
      9500.,  8092.,  6442.,  8090.,  11400., 15025., 15350., 12950., 10220.,
      9170.,  12900., 16975., 17300., 14570., 11480., 9808.,  13660., 17810.,
      18120., 15124., 11818., 9300.,  12870., 16680., 16950., 14064., 10929.,
      4854.,  6990.,  9390.,  9510.,  8160.,  6537.,  9004.,  12740., 16850.,
      17060., 14428., 11410., 14570., 20400., 26725., 27050., 22670., 17780.,
      15650., 21900., 28675., 29000., 24290., 19040., 16072., 22300., 28970.,
      29280., 24340., 18946., 14808., 20430., 26400., 26670., 22056., 17085.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,   4.,   7.,   10.,  13.,  10.,  9.,   29.,  39.,  49.,  59.,  40.,
      29.,  79.,  89.,  99.,  109., 70.,  49.,  129., 139., 149., 159., 100.,
      69.,  179., 189., 199., 209., 130., 63.,  150., 157., 164., 171., 100.,
      5.,   16.,  27.,  38.,  49.,  30.,  37.,  93.,  119., 145., 171., 100.,
      97.,  223., 249., 275., 301., 170., 157., 353., 379., 405., 431., 240.,
      217., 483., 509., 535., 561., 310., 147., 322., 337., 352., 367., 200.,
      9.,   28.,  47.,  66.,  85.,  50.,  65.,  157., 199., 241., 283., 160.,
      165., 367., 409., 451., 493., 270., 265., 577., 619., 661., 703., 380.,
      365., 787., 829., 871., 913., 490., 231., 494., 517., 540., 563., 300.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,   3708.,   5505.,   6435.,   6084.,   5289.,   5888.,   9088.,
      12960.,  14600.,  13280.,  11192.,  12115.,  18140.,  25225.,  27775.,
      24660.,  20365.,  20575.,  29900.,  40525.,  43075.,  37380.,  30265.,
      27464.,  38944.,  51640.,  54080.,  45952.,  36512.,  29571.,  41436.,
      54345.,  56475.,  47460.,  37329.,  19779.,  28764.,  38985.,  39915.,
      34596.,  27969.,  37856.,  54016.,  72000.,  73640.,  62816.,  50072.,
      62875.,  88700.,  117025., 119575., 100980., 79765.,  71335.,  100460.,
      132325., 134875., 113700., 89665.,  76712.,  106912., 139480., 141920.,
      118528., 92672.,  72987.,  101052., 131025., 133155., 110532., 85929.,
      37275.,  53820.,  72465.,  73395.,  63108.,  50649.,  69824.,  98944.,
      131040., 132680., 112352., 88952.,  113635., 159260., 208825., 211375.,
      177300., 139165., 122095., 171020., 224125., 226675., 190020., 149065.,
      125960., 174880., 227320., 229760., 191104., 148832., 116403., 160668.,
      207705., 209835., 173604., 134529.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,    22.,   42.,   62.,   82.,   67.,   52.,   184.,  256.,  328.,
      400.,  280.,  192.,  544.,  616.,  688.,  760.,  500.,  332.,  904.,
      976.,  1048., 1120., 720.,  472.,  1264., 1336., 1408., 1480., 940.,
      457.,  1102., 1154., 1206., 1258., 743.,  29.,   102.,  186.,  270.,
      354.,  219.,  260.,  664.,  864.,  1064., 1264., 744.,  720.,  1664.,
      1864., 2064., 2264., 1284., 1180., 2664., 2864., 3064., 3264., 1824.,
      1640., 3664., 3864., 4064., 4264., 2364., 1121., 2462., 2578., 2694.,
      2810., 1535., 53.,   182.,  330.,  478.,  626.,  371.,  468.,  1144.,
      1472., 1800., 2128., 1208., 1248., 2784., 3112., 3440., 3768., 2068.,
      2028., 4424., 4752., 5080., 5408., 2928., 2808., 6064., 6392., 6720.,
      7048., 3788., 1785., 3822., 4002., 4182., 4362., 2327.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,   28200.,   42090.,   49410.,   46920.,   40926.,   45208.,
      70048.,   100200.,  113160.,  103200.,  87160.,   93890.,   140920.,
      196350.,  216550.,  192600.,  159290.,  160850.,  234040.,  317550.,
      337750.,  293400.,  237770.,  216184.,  306720.,  406920.,  426280.,
      362400.,  288088.,  233526.,  327336.,  429450.,  446370.,  375240.,
      295230.,  154614.,  225192.,  305610.,  312930.,  271560.,  219774.,
      297496.,  424864.,  566760.,  579720.,  494880.,  394744.,  495650.,
      699640.,  923550.,  943750.,  797400.,  630170.,  562610.,  792760.,
      1044750., 1064950., 898200.,  708650.,  606712.,  845856.,  1103880.,
      1123240., 938400.,  733912.,  578262.,  800808.,  1038570., 1055490.,
      876360.,  681438.,  291990.,  422184.,  569130.,  576450.,  496200.,
      398622.,  549784.,  779680.,  1033320., 1046280., 886560.,  702328.,
      897410.,  1258360., 1650750., 1670950., 1402200., 1101050., 964370.,
      1351480., 1771950., 1792150., 1503000., 1179530., 997240.,  1384992.,
      1800840., 1820200., 1514400., 1179736., 922998.,  1274280., 1647690.,
      1664610., 1377480., 1067646.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   284.,   428.,   572.,   486.,   340.,   1288.,  1832.,
      2376.,  2920.,  2084.,  1380.,  4008.,  4552.,  5096.,  5640.,  3764.,
      2420.,  6728.,  7272.,  7816.,  8360.,  5444.,  3460.,  9448.,  9992.,
      10536., 11080., 7124.,  3470.,  8428.,  8828.,  9228.,  9628.,  5718.,
      190.,   716.,   1372.,  2028.,  2684.,  1670.,  1940.,  5000.,  6568.,
      8136.,  9704.,  5732.,  5540.,  12840., 14408., 15976., 17544., 9972.,
      9140.,  20680., 22248., 23816., 25384., 14212., 12740., 28520., 30088.,
      31656., 33224., 18452., 8750.,  19244., 20156., 21068., 21980., 12022.,
      350.,   1292.,  2460.,  3628.,  4796.,  2854.,  3540.,  8712.,  11304.,
      13896., 16488., 9380.,  9700.,  21672., 24264., 26856., 29448., 16180.,
      15860., 34632., 37224., 39816., 42408., 22980., 22020., 47592., 50184.,
      52776., 55368., 29780., 14030., 30060., 31484., 32908., 34332., 18326.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,   1272.,   1668.,   2040.,   2505.,   3000.,   2955.,   3480.,
      2820.,   3264.,   2469.,   2820.,   2704.,   3184.,   4208.,   4880.,
      6040.,   6920.,   6840.,   7760.,   6256.,   7024.,   5296.,   5896.,
      5675.,   6440.,   8540.,   9600.,   11925.,  13300.,  13175.,  14600.,
      11740.,  12920.,  9725.,   10640.,  9815.,   10760.,  14300.,  15600.,
      19425.,  21100.,  20675.,  22400.,  17980.,  19400.,  14585.,  15680.,
      13288.,  14176.,  18864.,  20080.,  25040.,  26600.,  26240.,  27840.,
      22320.,  23632.,  17752.,  18760.,  14403.,  15168.,  20196.,  21240.,
      26505.,  27840.,  27555.,  28920.,  23172.,  24288.,  18237.,  19092.,
      9435.,   10344.,  13764.,  15000.,  18705.,  20280.,  19155.,  20760.,
      16644.,  17952.,  13485.,  14484.,  18256.,  19600.,  26096.,  27920.,
      34840.,  37160.,  35640.,  38000.,  30448.,  32368.,  24304.,  25768.,
      30515.,  32360.,  43100.,  45600.,  56925.,  60100.,  58175.,  61400.,
      49180.,  51800.,  38885.,  40880.,  34655.,  36680.,  48860.,  51600.,
      64425.,  67900.,  65675.,  69200.,  55420.,  58280.,  43745.,  45920.,
      37480.,  39232.,  52272.,  54640.,  68240.,  71240.,  69440.,  72480.,
      58032.,  60496.,  45400.,  47272.,  35787.,  37200.,  49572.,  51480.,
      64305.,  66720.,  65355.,  67800.,  54276.,  56256.,  42213.,  43716.,
      17859.,  19416.,  25860.,  27960.,  34905.,  37560.,  35355.,  38040.,
      30468.,  32640.,  24501.,  26148.,  33808.,  36016.,  47984.,  50960.,
      63640.,  67400.,  64440.,  68240.,  54640.,  57712.,  43312.,  45640.,
      55355.,  58280.,  77660.,  81600.,  101925., 106900., 103175., 108200.,
      86620.,  90680.,  68045.,  71120.,  59495.,  62600.,  83420.,  87600.,
      109425., 114700., 110675., 116000., 92860.,  97160.,  72905.,  76160.,
      61672.,  64288.,  85680.,  89200.,  111440., 115880., 112640., 117120.,
      93744.,  97360.,  73048.,  75784.,  57171.,  59232.,  78948.,  81720.,
      102105., 105600., 103155., 106680., 85380.,  88224.,  66189.,  68340.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   14.,   28.,   22.,   40.,   30.,   52.,
      27.,   40.,   16.,   36.,   68.,   116.,  100.,  156.,  132.,  196.,
      164.,  236.,  120.,  160.,  76.,   116.,  228.,  316.,  260.,  356.,
      292.,  396.,  324.,  436.,  220.,  280.,  136.,  196.,  388.,  516.,
      420.,  556.,  452.,  596.,  484.,  636.,  320.,  400.,  196.,  276.,
      548.,  716.,  580.,  756.,  612.,  796.,  644.,  836.,  420.,  520.,
      205.,  252.,  502.,  600.,  526.,  628.,  550.,  656.,  574.,  684.,
      343.,  400.,  9.,    20.,   38.,   64.,   78.,   108.,  118.,  152.,
      158.,  196.,  99.,   120.,  112.,  148.,  292.,  372.,  388.,  476.,
      484.,  580.,  580.,  684.,  344.,  400.,  332.,  388.,  772.,  892.,
      868.,  996.,  964.,  1100., 1060., 1204., 604.,  680.,  552.,  628.,
      1252., 1412., 1348., 1516., 1444., 1620., 1540., 1724., 864.,  960.,
      772.,  868.,  1732., 1932., 1828., 2036., 1924., 2140., 2020., 2244.,
      1124., 1240., 533.,  588.,  1174., 1288., 1230., 1348., 1286., 1408.,
      1342., 1468., 735.,  800.,  17.,   36.,   70.,   112.,  142.,  188.,
      214.,  264.,  286.,  340.,  171.,  200.,  208.,  260.,  516.,  628.,
      676.,  796.,  836.,  964.,  996.,  1132., 568.,  640.,  588.,  660.,
      1316., 1468., 1476., 1636., 1636., 1804., 1796., 1972., 988.,  1080.,
      968.,  1060., 2116., 2308., 2276., 2476., 2436., 2644., 2596., 2812.,
      1408., 1520., 1348., 1460., 2916., 3148., 3076., 3316., 3236., 3484.,
      3396., 3652., 1828., 1960., 861.,  924.,  1846., 1976., 1934., 2068.,
      2022., 2160., 2110., 2252., 1127., 1200.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,   9645.,   12636.,  15564.,  19095.,  22995.,  22635.,  26775.,
      21708.,  25212.,  19077.,  21849.,  20708.,  24500.,  32368.,  37680.,
      46620.,  53580.,  52940.,  60220.,  48560.,  54640.,  41204.,  45956.,
      43915.,  49975.,  66260.,  74660.,  92725.,  103625., 102625., 113925.,
      91620.,  100980., 76015.,  83275.,  76675.,  84175.,  111860., 122180.,
      152125., 165425., 162025., 175725., 141060., 152340., 114535., 123235.,
      104564., 111620., 148528., 158192., 197260., 209660., 206780., 219500.,
      175984., 186416., 140036., 148052., 113721., 119805., 159516., 167820.,
      209415., 220035., 217755., 228615., 183180., 192060., 144213., 151017.,
      73689.,  80925.,  107676., 117516., 146535., 159075., 150075., 162855.,
      130572., 140988., 105909., 113865., 143396., 154100., 205168., 219696.,
      274140., 292620., 280460., 299260., 239792., 255088., 191540., 203204.,
      240475., 255175., 339860., 359780., 449125., 474425., 459025., 484725.,
      388260., 409140., 307135., 323035., 273235., 289375., 385460., 407300.,
      508525., 536225., 518425., 546525., 437700., 460500., 345655., 362995.,
      296372., 310340., 413488., 432368., 539980., 563900., 549500., 573740.,
      459376., 479024., 359492., 374420., 283497., 294765., 392796., 408012.,
      509655., 528915., 517995., 537495., 430284., 446076., 334725., 346713.,
      139785., 152205., 202716., 219468., 273975., 295155., 277515., 298935.,
      239436., 256764., 192741., 205881., 266084., 283700., 377968., 401712.,
      501660., 531660., 507980., 538300., 431024., 455536., 341876., 360452.,
      437035., 460375., 613460., 644900., 805525., 845225., 815425., 855525.,
      684900., 717300., 538255., 562795., 469795., 494575., 659060., 692420.,
      864925., 907025., 874825., 917325., 734340., 768660., 576775., 602755.,
      488180., 509060., 678448., 706544., 882700., 918140., 892220., 927980.,
      742768., 771632., 578948., 600788., 453273., 469725., 626076., 648204.,
      809895., 837795., 818235., 846375., 677388., 700092., 525237., 542409.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   90.,    194.,   146.,   282.,   202.,
      370.,   193.,   293.,   94.,    246.,   460.,   828.,   700.,   1132.,
      940.,   1436.,  1180.,  1740.,  886.,   1198.,  534.,   846.,   1660.,
      2348.,  1900.,  2652.,  2140.,  2956.,  2380.,  3260.,  1646.,  2118.,
      974.,   1446.,  2860.,  3868.,  3100.,  4172.,  3340.,  4476.,  3580.,
      4780.,  2406.,  3038.,  1414.,  2046.,  4060.,  5388.,  4300.,  5692.,
      4540.,  5996.,  4780.,  6300.,  3166.,  3958.,  1549.,  1921.,  3826.,
      4602.,  4010.,  4818.,  4194.,  5034.,  4378.,  5250.,  2633.,  3085.,
      53.,    137.,   258.,   458.,   570.,   802.,   882.,   1146.,  1194.,
      1490.,  753.,   917.,   830.,   1110.,  2188.,  2812.,  2940.,  3628.,
      3692.,  4444.,  4444.,  5260.,  2646.,  3086.,  2550.,  2990.,  5948.,
      6892.,  6700.,  7708.,  7452.,  8524.,  8204.,  9340.,  4686.,  5286.,
      4270.,  4870.,  9708.,  10972., 10460., 11788., 11212., 12604., 11964.,
      13420., 6726.,  7486.,  5990.,  6750.,  13468., 15052., 14220., 15868.,
      14972., 16684., 15724., 17500., 8766.,  9686.,  4157.,  4593.,  9170.,
      10074., 9610.,  10546., 10050., 11018., 10490., 11490., 5753.,  6269.,
      101.,   249.,   482.,   810.,   1050.,  1410.,  1618.,  2010.,  2186.,
      2610.,  1313.,  1541.,  1566.,  1974.,  3916.,  4796.,  5180.,  6124.,
      6444.,  7452.,  7708.,  8780.,  4406.,  4974.,  4566.,  5134.,  10236.,
      11436., 11500., 12764., 12764., 14092., 14028., 15420., 7726.,  8454.,
      7566.,  8294.,  16556., 18076., 17820., 19404., 19084., 20732., 20348.,
      22060., 11046., 11934., 10566., 11454., 22876., 24716., 24140., 26044.,
      25404., 27372., 26668., 28700., 14366., 15414., 6765.,  7265.,  14514.,
      15546., 15210., 16274., 15906., 17002., 16602., 17730., 8873.,  9453.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,   75054.,   98280.,   121512.,  149010.,  179970.,  177090.,
      209970.,  170280.,  198120.,  149934.,  171966.,  161992.,  192136.,
      253792.,  296032.,  366200.,  421560.,  416440.,  474360.,  382560.,
      430944.,  325000.,  362824.,  345410.,  393650.,  521880.,  588760.,
      731150.,  817950.,  809950.,  899950.,  723800.,  798360.,  601010.,
      658850.,  606050.,  665810.,  884760.,  967000.,  1203950., 1309950.,
      1282750., 1391950., 1117400., 1207320., 907730.,  977090.,  829576.,
      885832.,  1178720., 1255776., 1565880., 1664760., 1641720., 1743160.,
      1397600., 1480800., 1112392., 1176328., 903774.,  952302.,  1267944.,
      1334184., 1664850., 1749570., 1731330., 1817970., 1456680., 1527528.,
      1146990., 1201278., 582366.,  640110.,  851688.,  930216.,  1159890.,
      1259970., 1187970., 1289970., 1034280., 1117416., 839406.,  902910.,
      1136584., 1222024., 1626976., 1742944., 2174840., 2322360., 2225080.,
      2375160., 1903200., 2025312., 1520776., 1613896., 1909250., 2026610.,
      2699160., 2858200., 3567950., 3769950., 3646750., 3851950., 3085400.,
      3252120., 2441330., 2568290., 2169890., 2298770., 3062040., 3236440.,
      4040750., 4261950., 4119550., 4343950., 3479000., 3661080., 2748050.,
      2886530., 2357128., 2468680., 3289184., 3439968., 4296120., 4487160.,
      4371960., 4565560., 3655520., 3812448., 2861128., 2980360., 2256798.,
      2346798., 3127272., 3248808., 4058130., 4211970., 4124610., 4280370.,
      3426600., 3552744., 2665902., 2761662., 1105950., 1205166., 1605096.,
      1738920., 2170770., 2339970., 2198850., 2369970., 1898280., 2036712.,
      1528878., 1633854., 2111176., 2251912., 3000160., 3189856., 3983480.,
      4223160., 4033720., 4275960., 3423840., 3619680., 2716552., 2864968.,
      3473090., 3659570., 4876440., 5127640., 6404750., 6721950., 6483550.,
      6803950., 5447000., 5705880., 4281650., 4477730., 3733730., 3931730.,
      5239320., 5505880., 6877550., 7213950., 6956350., 7295950., 5840600.,
      6114840., 4588370., 4795970., 3884680., 4051528., 5399648., 5624160.,
      7026360., 7309560., 7102200., 7387960., 5913440., 6144096., 4609864.,
      4784392., 3609822., 3741294., 4986600., 5163432., 6451410., 6674370.,
      6517890., 6742770., 5396520., 5577960., 4184814., 4322046.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    636.,    1436.,   1052.,   2108.,
      1468.,   2780.,   1454.,   2238.,   620.,    1804.,   3352.,   6232.,
      5208.,   8600.,   7064.,   10968.,  8920.,   13336.,  6796.,   9260.,
      3980.,   6444.,   12632.,  18072.,  14488.,  20440.,  16344.,  22808.,
      18200.,  25176.,  12716.,  16460.,  7340.,   11084.,  21912.,  29912.,
      23768.,  32280.,  25624.,  34648.,  27480.,  37016.,  18636.,  23660.,
      10700.,  15724.,  31192.,  41752.,  33048.,  44120.,  34904.,  46488.,
      36760.,  48856.,  24556.,  30860.,  12030.,  14990.,  29852.,  36028.,
      31292.,  37724.,  32732.,  39420.,  34172.,  41116.,  20622.,  24222.,
      350.,    1006.,   1884.,   3452.,   4348.,   6172.,   6812.,   8892.,
      9276.,   11612.,  5870.,   7166.,   6380.,   8588.,   16920.,  21848.,
      22872.,  28312.,  28824.,  34776.,  34776.,  41240.,  20748.,  24236.,
      19980.,  23468.,  46680.,  54168.,  52632.,  60632.,  58584.,  67096.,
      64536.,  73560.,  36908.,  41676.,  33580.,  38348.,  76440.,  86488.,
      82392.,  92952.,  88344.,  99416.,  94296.,  105880., 53068.,  59116.,
      47180.,  53228.,  106200., 118808., 112152., 125272., 118104., 131736.,
      124056., 138200., 69228.,  76556.,  32830.,  36302.,  72476.,  79676.,
      75964.,  83420.,  79452.,  87164.,  82940.,  90908.,  45518.,  49630.,
      670.,    1838.,   3548.,   6140.,   8060.,   10908.,  12572.,  15676.,
      17084.,  20444.,  10286.,  12094.,  12140.,  15372.,  30488.,  37464.,
      40536.,  48024.,  50584.,  58584.,  60632.,  69144.,  34700.,  39212.,
      35980.,  40492.,  80728.,  90264.,  90776.,  100824., 100824., 111384.,
      110872., 121944., 61100.,  66892.,  59820.,  65612.,  130968., 143064.,
      141016., 153624., 151064., 164184., 161112., 174744., 87500.,  94572.,
      83660.,  90732.,  181208., 195864., 191256., 206424., 201304., 216984.,
      211352., 227544., 113900., 122252., 53630.,  57614.,  115100., 123324.,
      120636., 129116., 126172., 134908., 131708., 140700., 70414.,  75038.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      51412.,  53152.,  54916.,  56704.,  73072.,  75456.,  77872.,  80320.,
      97100.,  100160., 103260., 106400., 101820., 104960., 108140., 111360.,
      86704.,  89280.,  91888.,  94528.,  69028.,  71008.,  73012.,  75040.,
      56109.,  57612.,  59133.,  60672.,  78732.,  80784.,  82860.,  84960.,
      103395., 106020., 108675., 111360., 107535., 110220., 112935., 115680.,
      90492.,  92688.,  94908.,  97152.,  71265.,  72948.,  74649.,  76368.,
      35949.,  37740.,  39549.,  41376.,  52620.,  55056.,  57516.,  60000.,
      71715.,  74820.,  77955.,  81120.,  73455.,  76620.,  79815.,  83040.,
      63996.,  66576.,  69180.,  71808.,  51969.,  53940.,  55929.,  57936.,
      70372.,  73024.,  75700.,  78400.,  100784., 104384., 108016., 111680.,
      134780., 139360., 143980., 148640., 137900., 142560., 147260., 152000.,
      118000., 121792., 125616., 129472., 94324.,  97216.,  100132., 103072.,
      118415., 122060., 125735., 129440., 167460., 172400., 177380., 182400.,
      221425., 227700., 234025., 240400., 226325., 232700., 239125., 245600.,
      191540., 196720., 201940., 207200., 151595., 155540., 159515., 163520.,
      134615., 138620., 142655., 146720., 190020., 195440., 200900., 206400.,
      250825., 257700., 264625., 271600., 255725., 262700., 269725., 276800.,
      216020., 221680., 227380., 233120., 170675., 174980., 179315., 183680.,
      146452., 149920., 153412., 156928., 204400., 209088., 213808., 218560.,
      267020., 272960., 278940., 284960., 271740., 277760., 283820., 289920.,
      227248., 232128., 237040., 241984., 177892., 181600., 185332., 189088.,
      140349., 143148., 145965., 148800., 194508., 198288., 202092., 205920.,
      252435., 257220., 262035., 266880., 256575., 261420., 266295., 271200.,
      213180., 217104., 221052., 225024., 165873., 168852., 171849., 174864.,
      68349.,  71436.,  74541.,  77664.,  99276.,  103440., 107628., 111840.,
      134355., 139620., 144915., 150240., 136095., 141420., 146775., 152160.,
      117564., 121872., 126204., 130560., 94737.,  98004.,  101289., 104592.,
      130852., 135232., 139636., 144064., 186032., 191936., 197872., 203840.,
      247100., 254560., 262060., 269600., 250220., 257760., 265340., 272960.,
      212464., 218560., 224688., 230848., 168628., 173248., 177892., 182560.,
      215615., 221420., 227255., 233120., 302820., 310640., 318500., 326400.,
      397825., 407700., 417625., 427600., 402725., 412700., 422725., 432800.,
      338420., 346480., 354580., 362720., 266075., 272180., 278315., 284480.,
      231815., 237980., 244175., 250400., 325380., 333680., 342020., 350400.,
      427225., 437700., 448225., 458800., 432125., 442700., 453325., 464000.,
      362900., 371440., 380020., 388640., 285155., 291620., 298115., 304640.,
      241492., 246688., 251908., 257152., 335728., 342720., 349744., 356800.,
      436940., 445760., 454620., 463520., 441660., 450560., 459500., 468480.,
      367792., 374976., 382192., 389440., 286756., 292192., 297652., 303136.,
      224589., 228684., 232797., 236928., 310284., 315792., 321324., 326880.,
      401475., 408420., 415395., 422400., 405615., 412620., 419655., 426720.,
      335868., 341520., 347196., 352896., 260481., 264756., 269049., 273360.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    34.,
      56.,    82.,    112.,   58.,    88.,    122.,   160.,   82.,    120.,
      162.,   208.,   85.,    108.,   133.,   160.,   30.,    64.,    102.,
      144.,   188.,   272.,   364.,   464.,   300.,   400.,   508.,   624.,
      412.,   528.,   652.,   784.,   524.,   656.,   796.,   944.,   406.,
      480.,   558.,   640.,   230.,   304.,   382.,   464.,   748.,   912.,
      1084.,  1264.,  860.,   1040.,  1228.,  1424.,  972.,   1168.,  1372.,
      1584.,  1084.,  1296.,  1516.,  1744.,  766.,   880.,   998.,   1120.,
      430.,   544.,   662.,   784.,   1308.,  1552.,  1804.,  2064.,  1420.,
      1680.,  1948.,  2224.,  1532.,  1808.,  2092.,  2384.,  1644.,  1936.,
      2236.,  2544.,  1126.,  1280.,  1438.,  1600.,  630.,   784.,   942.,
      1104.,  1868.,  2192.,  2524.,  2864.,  1980.,  2320.,  2668.,  3024.,
      2092.,  2448.,  2812.,  3184.,  2204.,  2576.,  2956.,  3344.,  1486.,
      1680.,  1878.,  2080.,  729.,   820.,   913.,   1008.,  1818.,  2008.,
      2202.,  2400.,  1906.,  2104.,  2306.,  2512.,  1994.,  2200.,  2410.,
      2624.,  2082.,  2296.,  2514.,  2736.,  1261.,  1372.,  1485.,  1600.,
      17.,    36.,    57.,    80.,    106.,   152.,   202.,   256.,   258.,
      312.,   370.,   432.,   410.,   472.,   538.,   608.,   562.,   632.,
      706.,   784.,   357.,   396.,   437.,   480.,   382.,   448.,   518.,
      592.,   1020.,  1168.,  1324.,  1488.,  1388.,  1552.,  1724.,  1904.,
      1756.,  1936.,  2124.,  2320.,  2124.,  2320.,  2524.,  2736.,  1270.,
      1376.,  1486.,  1600.,  1222.,  1328.,  1438.,  1552.,  2860.,  3088.,
      3324.,  3568.,  3228.,  3472.,  3724.,  3984.,  3596.,  3856.,  4124.,
      4400.,  3964.,  4240.,  4524.,  4816.,  2270.,  2416.,  2566.,  2720.,
      2062.,  2208.,  2358.,  2512.,  4700.,  5008.,  5324.,  5648.,  5068.,
      5392.,  5724.,  6064.,  5436.,  5776.,  6124.,  6480.,  5804.,  6160.,
      6524.,  6896.,  3270.,  3456.,  3646.,  3840.,  2902.,  3088.,  3278.,
      3472.,  6540.,  6928.,  7324.,  7728.,  6908.,  7312.,  7724.,  8144.,
      7276.,  7696.,  8124.,  8560.,  7644.,  8080.,  8524.,  8976.,  4270.,
      4496.,  4726.,  4960.,  2025.,  2132.,  2241.,  2352.,  4474.,  4696.,
      4922.,  5152.,  4690.,  4920.,  5154.,  5392.,  4906.,  5144.,  5386.,
      5632.,  5122.,  5368.,  5618.,  5872.,  2813.,  2940.,  3069.,  3200.,
      33.,    68.,    105.,   144.,   202.,   280.,   362.,   448.,   482.,
      568.,   658.,   752.,   762.,   856.,   954.,   1056.,  1042.,  1144.,
      1250.,  1360.,  629.,   684.,   741.,   800.,   734.,   832.,   934.,
      1040.,  1852.,  2064.,  2284.,  2512.,  2476.,  2704.,  2940.,  3184.,
      3100.,  3344.,  3596.,  3856.,  3724.,  3984.,  4252.,  4528.,  2134.,
      2272.,  2414.,  2560.,  2214.,  2352.,  2494.,  2640.,  4972.,  5264.,
      5564.,  5872.,  5596.,  5904.,  6220.,  6544.,  6220.,  6544.,  6876.,
      7216.,  6844.,  7184.,  7532.,  7888.,  3774.,  3952.,  4134.,  4320.,
      3694.,  3872.,  4054.,  4240.,  8092.,  8464.,  8844.,  9232.,  8716.,
      9104.,  9500.,  9904.,  9340.,  9744.,  10156., 10576., 9964.,  10384.,
      10812., 11248., 5414.,  5632.,  5854.,  6080.,  5174.,  5392.,  5614.,
      5840.,  11212., 11664., 12124., 12592., 11836., 12304., 12780., 13264.,
      12460., 12944., 13436., 13936., 13084., 13584., 14092., 14608., 7054.,
      7312.,  7574.,  7840.,  3321.,  3444.,  3569.,  3696.,  7130.,  7384.,
      7642.,  7904.,  7474.,  7736.,  8002.,  8272.,  7818.,  8088.,  8362.,
      8640.,  8162.,  8440.,  8722.,  9008.,  4365.,  4508.,  4653.,  4800.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,   31353.,   35421.,   39633.,   46332.,   51948.,   57756.,
      63756.,   70755.,   78255.,   85995.,   93975.,   84555.,   92535.,
      100755.,  109215.,  81756.,   88524.,   95484.,   102636.,  72285.,
      77649.,   83157.,   88809.,   77324.,   84668.,   92204.,   99932.,
      121744.,  132048.,  142608.,  153424.,  176340.,  189860.,  203700.,
      217860.,  201140.,  215300.,  229780.,  244580.,  185360.,  197200.,
      209296.,  221648.,  157868.,  167132.,  176588.,  186236.,  166795.,
      178615.,  190675.,  202975.,  252740.,  269140.,  285860.,  302900.,
      354925.,  376225.,  397925.,  420025.,  393925.,  416025.,  438525.,
      461425.,  352740.,  371060.,  389700.,  408660.,  293395.,  307615.,
      322075.,  336775.,  295675.,  310375.,  325315.,  340495.,  432260.,
      452500.,  473060.,  493940.,  588925.,  615025.,  641525.,  668425.,
      627925.,  654825.,  682125.,  709825.,  547620.,  569780.,  592260.,
      615060.,  445315.,  462415.,  479755.,  497335.,  407852.,  421724.,
      435788.,  450044.,  579856.,  598864.,  618128.,  637648.,  770740.,
      795140.,  819860.,  844900.,  808340.,  833380.,  858740.,  884420.,
      688528.,  709072.,  729872.,  750928.,  548300.,  564092.,  580076.,
      596252.,  445893.,  457881.,  470013.,  482289.,  625788.,  642156.,
      658716.,  675468.,  821955.,  842895.,  864075.,  885495.,  854955.,
      876375.,  898035.,  919935.,  719580.,  737100.,  754812.,  772716.,
      566781.,  580209.,  593781.,  607497.,  284037.,  298329.,  312765.,
      327345.,  416124.,  435564.,  455196.,  475020.,  567555.,  592335.,
      617355.,  642615.,  581355.,  606615.,  632115.,  657855.,  506844.,
      527436.,  548220.,  569196.,  411837.,  427569.,  443445.,  459465.,
      557708.,  578876.,  600236.,  621788.,  799120.,  827856.,  856848.,
      886096.,  1069140., 1105700., 1142580., 1179780., 1093940., 1131140.,
      1168660., 1206500., 936464.,  966736.,  997264.,  1028048., 748844.,
      771932.,  795212.,  818684.,  940075.,  969175.,  998515.,  1028095.,
      1329860., 1369300., 1409060., 1449140., 1758925., 1809025., 1859525.,
      1910425., 1797925., 1848825., 1900125., 1951825., 1522020., 1563380.,
      1605060., 1647060., 1204915., 1236415., 1268155., 1300135., 1068955.,
      1100935., 1133155., 1165615., 1509380., 1552660., 1596260., 1640180.,
      1992925., 2047825., 2103125., 2158825., 2031925., 2087625., 2143725.,
      2200225., 1716900., 1762100., 1807620., 1853460., 1356835., 1391215.,
      1425835., 1460695., 1164716., 1192412., 1220300., 1248380., 1625872.,
      1663312., 1701008., 1738960., 2124340., 2171780., 2219540., 2267620.,
      2161940., 2210020., 2258420., 2307140., 1808272., 1847248., 1886480.,
      1925968., 1415756., 1445372., 1475180., 1505180., 1117221., 1139577.,
      1162077., 1184721., 1548540., 1578732., 1609116., 1639692., 2009955.,
      2048175., 2086635., 2125335., 2042955., 2081655., 2120595., 2159775.,
      1697628., 1728972., 1760508., 1792236., 1321053., 1344849., 1368789.,
      1392873., 540645.,  565305.,  590109.,  615057.,  785916.,  819180.,
      852636.,  886284.,  1064355., 1106415., 1148715., 1191255., 1078155.,
      1120695., 1163475., 1206495., 931932.,  966348.,  1000956., 1035756.,
      751389.,  777489.,  803733.,  830121.,  1038092., 1073084., 1108268.,
      1143644., 1476496., 1523664., 1571088., 1618768., 1961940., 2021540.,
      2081460., 2141700., 1986740., 2046980., 2107540., 2168420., 1687568.,
      1736272., 1785232., 1834448., 1339820., 1376732., 1413836., 1451132.,
      1713355., 1759735., 1806355., 1853215., 2406980., 2469460., 2532260.,
      2595380., 3162925., 3241825., 3321125., 3400825., 3201925., 3281625.,
      3361725., 3442225., 2691300., 2755700., 2820420., 2885460., 2116435.,
      2165215., 2214235., 2263495., 1842235., 1891495., 1940995., 1990735.,
      2586500., 2652820., 2719460., 2786420., 3396925., 3480625., 3564725.,
      3649225., 3435925., 3520425., 3605325., 3690625., 2886180., 2954420.,
      3022980., 3091860., 2268355., 2320015., 2371915., 2424055., 1921580.,
      1963100., 2004812., 2046716., 2671888., 2727760., 2783888., 2840272.,
      3477940., 3548420., 3619220., 3690340., 3515540., 3586660., 3658100.,
      3729860., 2928016., 2985424., 3043088., 3101008., 2283212., 2326652.,
      2370284., 2414108., 1788549., 1821273., 1854141., 1887153., 2471292.,
      2515308., 2559516., 2603916., 3197955., 3253455., 3309195., 3365175.,
      3230955., 3286935., 3343155., 3399615., 2675676., 2720844., 2766204.,
      2811756., 2075325., 2109489., 2143797., 2178249.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,    162.,    298.,    466.,
      234.,    402.,    602.,    834.,    410.,   642.,    906.,    1202.,
      586.,    882.,    1210.,   1570.,   637.,   817.,    1013.,   1225.,
      178.,    442.,    738.,    1066.,   1348.,  2004.,   2724.,   3508.,
      2212.,   2996.,   3844.,   4756.,   3076.,  3988.,   4964.,   6004.,
      3940.,   4980.,   6084.,   7252.,   3106.,  3690.,   4306.,   4954.,
      1698.,   2282.,   2898.,   3546.,   5668.,  6964.,   8324.,   9748.,
      6532.,   7956.,   9444.,   10996.,  7396.,  8948.,   10564.,  12244.,
      8260.,   9940.,   11684.,  13492.,  5906.,  6810.,   7746.,   8714.,
      3218.,   4122.,   5058.,   6026.,   9988.,  11924.,  13924.,  15988.,
      10852.,  12916.,  15044.,  17236.,  11716., 13908.,  16164.,  18484.,
      12580.,  14900.,  17284.,  19732.,  8706.,  9930.,   11186.,  12474.,
      4738.,   5962.,   7218.,   8506.,   14308., 16884.,  19524.,  22228.,
      15172.,  17876.,  20644.,  23476.,  16036., 18868.,  21764.,  24724.,
      16900.,  19860.,  22884.,  25972.,  11506., 13050.,  14626.,  16234.,
      5653.,   6377.,   7117.,   7873.,   14170., 15682.,  17226.,  18802.,
      14858.,  16434.,  18042.,  19682.,  15546., 17186.,  18858.,  20562.,
      16234.,  17938.,  19674.,  21442.,  9869.,  10753.,  11653.,  12569.,
      101.,    249.,    413.,    593.,    762.,   1122.,   1514.,   1938.,
      1962.,   2386.,   2842.,   3330.,   3162.,  3650.,   4170.,   4722.,
      4362.,   4914.,   5498.,   6114.,   2781.,  3089.,   3413.,   3753.,
      2930.,   3450.,   4002.,   4586.,   7876.,  9044.,   10276.,  11572.,
      10788.,  12084.,  13444.,  14868.,  13700., 15124.,  16612.,  18164.,
      16612.,  18164.,  19780.,  21460.,  9954.,  10794.,  11666.,  12570.,
      9570.,   10410.,  11282.,  12186.,  22436., 24244.,  26116.,  28052.,
      25348.,  27284.,  29284.,  31348.,  28260., 30324.,  32452.,  34644.,
      31172.,  33364.,  35620.,  37940.,  17874., 19034.,  20226.,  21450.,
      16210.,  17370.,  18562.,  19786.,  36996., 39444.,  41956.,  44532.,
      39908.,  42484.,  45124.,  47828.,  42820., 45524.,  48292.,  51124.,
      45732.,  48564.,  51460.,  54420.,  25794., 27274.,  28786.,  30330.,
      22850.,  24330.,  25842.,  27386.,  51556., 54644.,  57796.,  61012.,
      54468.,  57684.,  60964.,  64308.,  57380., 60724.,  64132.,  67604.,
      60292.,  63764.,  67300.,  70900.,  33714., 35514.,  37346.,  39210.,
      15989.,  16841.,  17709.,  18593.,  35354., 37122.,  38922.,  40754.,
      37066.,  38898.,  40762.,  42658.,  38778., 40674.,  42602.,  44562.,
      40490.,  42450.,  44442.,  46466.,  22253., 23265.,  24293.,  25337.,
      197.,    473.,    765.,    1073.,   1466.,  2082.,   2730.,   3410.,
      3690.,   4370.,   5082.,   5826.,   5914.,  6658.,   7434.,   8242.,
      8138.,   8946.,   9786.,   10658.,  4925.,  5361.,   5813.,   6281.,
      5682.,   6458.,   7266.,   8106.,   14404., 16084.,  17828.,  19636.,
      19364.,  21172.,  23044.,  24980.,  24324., 26260.,  28260.,  30324.,
      29284.,  31348.,  33476.,  35668.,  16802., 17898.,  19026.,  20186.,
      17442.,  18538.,  19666.,  20826.,  39204., 41524.,  43908.,  46356.,
      44164.,  46612.,  49124.,  51700.,  49124., 51700.,  54340.,  57044.,
      54084.,  56788.,  59556.,  62388.,  29842., 31258.,  32706.,  34186.,
      29202.,  30618.,  32066.,  33546.,  64004., 66964.,  69988.,  73076.,
      68964.,  72052.,  75204.,  78420.,  73924., 77140.,  80420.,  83764.,
      78884.,  82228.,  85636.,  89108.,  42882., 44618.,  46386.,  48186.,
      40962.,  42698.,  44466.,  46266.,  88804., 92404.,  96068.,  99796.,
      93764.,  97492.,  101284., 105140., 98724., 102580., 106500., 110484.,
      103684., 107668., 111716., 115828., 55922., 57978.,  60066.,  62186.,
      26325.,  27305.,  28301.,  29313.,  56538., 58562.,  60618.,  62706.,
      59274.,  61362.,  63482.,  65634.,  62010., 64162.,  66346.,  68562.,
      64746.,  66962.,  69210.,  71490.,  34637., 35777.,  36933.,  38105.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,   246846.,   279246.,   312798.,   365160.,   409896.,
      456168.,   503976.,   558690.,   618450.,   680130.,   743730.,
      668610.,   732210.,   797730.,   865170.,   647400.,   701352.,
      756840.,   813864.,   573006.,   615774.,   659694.,   704766.,
      611368.,   669928.,   730024.,   791656.,   963808.,   1045984.,
      1130208.,  1216480.,  1397400.,  1505240.,  1615640.,  1728600.,
      1595160.,  1708120.,  1823640.,  1941720.,  1471200.,  1565664.,
      1662176.,  1760736.,  1253800.,  1327720.,  1403176.,  1480168.,
      1322690.,  1417010.,  1513250.,  1611410.,  2005720.,  2136600.,
      2270040.,  2406040.,  2818350.,  2988350.,  3161550.,  3337950.,
      3129550.,  3305950.,  3485550.,  3668350.,  2803800.,  2950040.,
      3098840.,  3250200.,  2333090.,  2446610.,  2562050.,  2679410.,
      2350850.,  2468210.,  2587490.,  2708690.,  3438040.,  3599640.,
      3763800.,  3930520.,  4685550.,  4893950.,  5105550.,  5320350.,
      4996750.,  5211550.,  5429550.,  5650750.,  4359000.,  4535960.,
      4715480.,  4897560.,  3545570.,  3682130.,  3820610.,  3961010.,
      3249064.,  3359848.,  3472168.,  3586024.,  4620000.,  4771808.,
      4925664.,  5081568.,  6141720.,  6336600.,  6534040.,  6734040.,
      6441880.,  6641880.,  6844440.,  7049560.,  5487840.,  5651936.,
      5818080.,  5986272.,  4370728.,  4496872.,  4624552.,  4753768.,
      3555246.,  3651006.,  3747918.,  3845982.,  4990056.,  5120808.,
      5253096.,  5386920.,  6554850.,  6722130.,  6891330.,  7062450.,
      6818370.,  6989490.,  7162530.,  7337490.,  5739240.,  5879208.,
      6020712.,  6163752.,  4520910.,  4628190.,  4736622.,  4846206.,
      2258094.,  2372286.,  2487630.,  2604126.,  3309672.,  3465000.,
      3621864.,  3780264.,  4515810.,  4713810.,  4913730.,  5115570.,
      4625730.,  4827570.,  5031330.,  5237010.,  4034280.,  4198824.,
      4364904.,  4532520.,  3279054.,  3404766.,  3531630.,  3659646.,
      4440616.,  4609768.,  4780456.,  4952680.,  6364384.,  6594016.,
      6825696.,  7059424.,  8516760.,  8808920.,  9103640.,  9400920.,
      8714520.,  9011800.,  9311640.,  9614040.,  7461600.,  7703520.,
      7947488.,  8193504.,  5967784.,  6152296.,  6338344.,  6525928.,
      7491650.,  7724210.,  7958690.,  8195090.,  10599640., 10914840.,
      11232600., 11552920., 14011310., 14395326., 14782542., 15172958.,
      14246734., 14620766., 14997998., 15378430., 11917912., 12215704.,
      12516056., 12818968., 9259810.,  9478802.,  9699714.,  9922546.,
      8292482.,  8498930.,  8707298.,  8917586.,  11597784., 11878168.,
      12161112., 12446616., 14844270., 15184766., 15528462., 15875358.,
      14752014., 15082526., 15416238., 15753150., 12121432., 12384408.,
      12649944., 12918040., 9196386.,  9389266.,  9584066.,  9780786.,
      8079784.,  8252008.,  8425768.,  8601064.,  11224800., 11458528.,
      11694304., 11932128., 13936920., 14217816., 14501272., 14787288.,
      13505944., 13775576., 14047768., 14322520., 10892512., 11105760.,
      11321056., 11538400., 8034088.,  8188904.,  8345256.,  8503144.,
      6722094.,  6851646.,  6982350.,  7114206.,  9302632.,  9478440.,
      9655784.,  9834664.,  11064930., 11272146., 11481282., 11692338.,
      10269634., 10464306., 10660898., 10859410., 8048872.,  8201128.,
      8354920.,  8510248.,  5643854.,  5752158.,  5861614.,  5972222.,
      669486.,   719166.,   769998.,   821982.,   1019496.,  1088808.,
      1159656.,  1232040.,  1438050.,  1528530.,  1620930.,  1715250.,
      1547970.,  1642290.,  1738530.,  1836690.,  1400040.,  1478568.,
      1558632.,  1640232.,  1174350.,  1235550.,  1297902.,  1361406.,
      1462312.,  1545448.,  1630120.,  1716328.,  2163936.,  2278880.,
      2395872.,  2514912.,  2979480.,  3128280.,  3279640.,  3433560.,
      3177240.,  3331160.,  3487640.,  3646680.,  2802400.,  2929632.,
      3058912.,  3190240.,  2301352.,  2399848.,  2499880.,  2601448.,
      2693570.,  2818610.,  2945570.,  3074450.,  3915480.,  4087320.,
      4261720.,  4438680.,  5307950.,  5529150.,  5753550.,  5981150.,
      5619150.,  5846750.,  6077550.,  6311550.,  4877400.,  5064600.,
      5254360.,  5446680.,  3949730.,  4093970.,  4240130.,  4388210.,
      3721730.,  3869810.,  4019810.,  4171730.,  5347800.,  5550360.,
      5755480.,  5963160.,  7175150.,  7434750.,  7697550.,  7963550.,
      7486350.,  7752350.,  8021550.,  8293950.,  6432600.,  6650520.,
      6871000.,  7094040.,  5162210.,  5329490.,  5498690.,  5669810.,
      4591528.,  4726888.,  4863784.,  5002216.,  6475488.,  6660064.,
      6846688.,  7035360.,  8543000.,  8778840.,  9017240.,  9258200.,
      8843160.,  9084120.,  9327640.,  9573720.,  7474400.,  7671264.,
      7870176.,  8071136.,  5909800.,  6060520.,  6212776.,  6366568.,
      4746414.,  4860606.,  4975950.,  5092446.,  6627432.,  6782760.,
      6939624.,  7098024.,  8663010.,  8861010.,  9060930.,  9262770.,
      8926530.,  9128370.,  9332130.,  9537810.,  7474920.,  7639464.,
      7805544.,  7973160.,  5859534.,  5985246.,  6112110.,  6240126.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    446.,    846.,    380.,    1180.,   2236.,   3548.,
      1724.,   3036.,   4604.,   6428.,   3068.,   4892.,   6972.,   9308.,
      4412.,   6748.,   9340.,   12188.,  4926.,   6350.,   7902.,   9582.,
      1180.,   3260.,   5596.,   8188.,   10168.,  15352.,  21048.,  27256.,
      16952.,  23160.,  29880.,  37112.,  23736.,  30968.,  38712.,  46968.,
      30520.,  38776.,  47544.,  56824.,  24284.,  28924.,  33820.,  38972.,
      13020.,  17660.,  22556.,  27708.,  44088.,  54392.,  65208.,  76536.,
      50872.,  62200.,  74040.,  86392.,  57656.,  70008.,  82872.,  96248.,
      64440.,  77816.,  91704.,  106104., 46364.,  53564.,  61020.,  68732.,
      24860.,  32060.,  39516.,  47228.,  78008.,  93432.,  109368., 125816.,
      84792.,  101240., 118200., 135672., 91576.,  109048., 127032., 145528.,
      98360.,  116856., 135864., 155384., 68444.,  78204.,  88220.,  98492.,
      36700.,  46460.,  56476.,  66748.,  111928., 132472., 153528., 175096.,
      118712., 140280., 162360., 184952., 125496., 148088., 171192., 194808.,
      132280., 155896., 180024., 204664., 90524.,  102844., 115420., 128252.,
      44510.,  50286.,  56190.,  62222.,  111868., 123932., 136252., 148828.,
      117308., 129884., 142716., 155804., 122748., 135836., 149180., 162780.,
      128188., 141788., 155644., 169756., 78078.,  85134.,  92318.,  99630.,
      670.,    1838.,   3134.,   4558.,   5756.,   8604.,   11708.,  15068.,
      15292.,  18652.,  22268.,  26140.,  24828.,  28700.,  32828.,  37212.,
      34364.,  38748.,  43388.,  48284.,  21950.,  24398.,  26974.,  29678.,
      22940.,  27068.,  31452.,  36092.,  61880.,  71160.,  80952.,  91256.,
      85048.,  95352.,  106168., 117496., 108216., 119544., 131384., 143736.,
      131384., 143736., 156600., 169976., 78812.,  85500.,  92444.,  99644.,
      75740.,  82428.,  89372.,  96572.,  177720., 192120., 207032., 222456.,
      200888., 216312., 232248., 248696., 224056., 240504., 257464., 274936.,
      247224., 264696., 282680., 301176., 141852., 151100., 160604., 170364.,
      128540., 137788., 147292., 157052., 293560., 313080., 333112., 353656.,
      316728., 337272., 358328., 379896., 339896., 361464., 383544., 406136.,
      363064., 385656., 408760., 432376., 204892., 216700., 228764., 241084.,
      181340., 193148., 205212., 217532., 409400., 434040., 459192., 484856.,
      432568., 458232., 484408., 511096., 455736., 482424., 509624., 537336.,
      478904., 506616., 534840., 563576., 267932., 282300., 296924., 311804.,
      127070., 133870., 140798., 147854., 281084., 295196., 309564., 324188.,
      294716., 309340., 324220., 339356., 308348., 323484., 338876., 354524.,
      321980., 337628., 353532., 369692., 177022., 185102., 193310., 201646.,
      1310.,   3502.,   5822.,   8270.,   11132.,  16028.,  21180.,  26588.,
      28860.,  34268.,  39932.,  45852.,  46588.,  52508.,  58684.,  65116.,
      64316.,  70748.,  77436.,  84380.,  38974.,  42446.,  46046.,  49774.,
      44700.,  50876.,  57308.,  63996.,  113592., 126968., 140856., 155256.,
      153144., 167544., 182456., 197880., 192696., 208120., 224056., 240504.,
      232248., 248696., 265656., 283128., 133340., 142076., 151068., 160316.,
      138460., 147196., 156188., 165436., 311352., 329848., 348856., 368376.,
      350904., 370424., 390456., 411000., 390456., 411000., 432056., 453624.,
      430008., 451576., 473656., 496248., 237340., 248636., 260188., 271996.,
      232220., 243516., 255068., 266876., 509112., 532728., 556856., 581496.,
      548664., 573304., 598456., 624120., 588216., 613880., 640056., 666744.,
      627768., 654456., 681656., 709368., 341340., 355196., 369308., 383676.,
      325980., 339836., 353948., 368316., 706872., 735608., 764856., 794616.,
      746424., 776184., 806456., 837240., 785976., 816760., 848056., 879864.,
      825528., 857336., 889656., 922488., 445340., 461756., 478428., 495356.,
      209630., 217454., 225406., 233486., 450300., 466460., 482876., 499548.,
      472124., 488796., 505724., 522908., 493948., 511132., 528572., 546268.,
      515772., 533468., 551420., 569628., 275966., 285070., 294302., 303662.};
  const std::array<int, 4> in_shape = {{3, 6, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,   560.,   820.,   940.,   1060.,  980.,   837.,   892.,   1360.,
      1920.,  2130.,  2340.,  2096.,  1744.,  1820.,  2700.,  3725.,  4050.,
      4375.,  3840.,  3140.,  3080.,  4450.,  6000.,  6325.,  6650.,  5730.,
      4610.,  4078.,  5760.,  7610.,  7920.,  8230.,  6960.,  5506.,  4374.,
      6110.,  7990.,  8260.,  8530.,  7142.,  5598.,  2997.,  4340.,  5860.,
      5980.,  6100.,  5264.,  4239.,  5680.,  8080.,  10740., 10950., 11160.,
      9488.,  7540.,  9380.,  13200., 17375., 17700., 18025., 15180., 11960.,
      10640., 14950., 19650., 19975., 20300., 17070., 13430., 11386., 15840.,
      20630., 20940., 21250., 17712., 13822., 10800., 14930., 19330., 19600.,
      19870., 16466., 12780., 5643.,  8120.,  10900., 11020., 11140., 9548.,
      7641.,  10468., 14800., 19560., 19770., 19980., 16880., 13336., 16940.,
      23700., 31025., 31350., 31675., 26520., 20780., 18200., 25450., 33300.,
      33625., 33950., 28410., 22250., 18694., 25920., 33650., 33960., 34270.,
      28464., 22138., 17226., 23750., 30670., 30940., 31210., 25790., 19962.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   16.,   22.,   22.,   15.,   10.,   32.,   68.,
      89.,   110.,  96.,   60.,   35.,   92.,   173.,  194.,  215.,  176.,
      105.,  60.,   152.,  278.,  299.,  320.,  256.,  150.,  85.,   212.,
      383.,  404.,  425.,  336.,  195.,  84.,   193.,  328.,  343.,  358.,
      269.,  150.,  7.,    22.,   46.,   70.,   94.,   76.,   45.,   52.,
      128.,  230.,  287.,  344.,  264.,  150.,  137.,  308.,  515.,  572.,
      629.,  464.,  255.,  222.,  488.,  800.,  857.,  914.,  664.,  360.,
      307.,  668.,  1085., 1142., 1199., 864.,  465.,  210.,  451.,  724.,
      757.,  790.,  563.,  300.,  13.,   40.,   82.,   124.,  166.,  130.,
      75.,   94.,   224.,  392.,  485.,  578.,  432.,  240.,  239.,  524.,
      857.,  950.,  1043., 752.,  405.,  384.,  824.,  1322., 1415., 1508.,
      1072., 570.,  529.,  1124., 1787., 1880., 1973., 1392., 735.,  336.,
      709.,  1120., 1171., 1222., 857.,  450.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,   4084.,   6035.,   6965.,   7895.,   7348.,   6309.,   6620.,
      10160.,  14420.,  16060.,  17700.,  15920.,  13292.,  13735.,  20460.,
      28325.,  30875.,  33425.,  29420.,  24115.,  23605.,  34180.,  46175.,
      48725.,  51275.,  44260.,  35665.,  31652.,  44752.,  59180.,  61620.,
      64060.,  54224.,  42932.,  34155.,  47740.,  62465.,  64595.,  66725.,
      55900.,  43839.,  22941.,  33316.,  45095.,  46025.,  46955.,  40612.,
      32769.,  43916.,  62576.,  83300.,  84940.,  86580.,  73712.,  58652.,
      72955.,  102780., 135425., 137975., 140525., 118460., 93415.,  82825.,
      116500., 153275., 155825., 158375., 133300., 104965., 89108.,  124048.,
      161660., 164100., 166540., 138896., 108452., 84807.,  117292., 151925.,
      154055., 156185., 129484., 100539., 43353.,  62548.,  84155.,  85085.,
      86015.,  73876.,  59229.,  81212.,  114992., 152180., 153820., 155460.,
      131504., 104012., 132175., 185100., 242525., 245075., 247625., 207500.,
      162715., 142045., 198820., 260375., 262925., 265475., 222340., 174265.,
      146564., 203344., 264140., 266580., 269020., 223568., 173972., 135459.,
      186844., 241385., 243515., 245645., 203068., 157239.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,   101.,  143.,  150.,  105.,   58.,    204.,
      454.,   610.,   766.,  684.,  434.,  238.,  644.,   1234.,  1390.,
      1546.,  1284.,  774.,  418.,  1084., 2014., 2170.,  2326.,  1884.,
      1114.,  598.,   1524., 2794., 2950., 3106., 2484.,  1454.,  623.,
      1442.,  2465.,  2579., 2693., 2034., 1139., 41.,    142.,   311.,
      497.,   683.,   558.,  333.,  370.,  924.,  1678.,  2122.,  2566.,
      1980.,  1130.,  1030., 2324., 3898., 4342., 4786.,  3540.,  1950.,
      1690.,  3724.,  6118., 6562., 7006., 5100., 2770.,  2350.,  5124.,
      8338.,  8782.,  9226., 6660., 3590., 1619., 3482.,  5597.,  5855.,
      6113.,  4362.,  2327., 77.,   262.,  563.,  893.,   1223.,  966.,
      561.,   682.,   1644., 2902., 3634., 4366., 3276.,  1826.,  1822.,
      4004.,  6562.,  7294., 8026., 5796., 3126., 2962.,  6364.,  10222.,
      10954., 11686., 8316., 4426., 4102., 8724., 13882., 14614., 15346.,
      10836., 5726.,  2615., 5522., 8729., 9131., 9533.,  6690.,  3515.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,   31112.,   46210.,   53530.,   60850.,   56840.,   48942.,
      50920.,   78432.,   111640.,  124600.,  137560.,  124000.,  103720.,
      106610.,  159160.,  220750.,  240950.,  261150.,  230200.,  188930.,
      184730.,  267800.,  362150.,  382350.,  402550.,  347800.,  280490.,
      249352.,  352736.,  466680.,  486040.,  505400.,  428000.,  339016.,
      269910.,  377384.,  493930.,  510850.,  527770.,  442280.,  346950.,
      179406.,  260936.,  353650.,  360970.,  368290.,  318920.,  257598.,
      345256.,  492384.,  655960.,  668920.,  681880.,  580960.,  462568.,
      575330.,  811000.,  1069150., 1089350., 1109550., 935800.,  738290.,
      653450.,  919640.,  1210550., 1230750., 1250950., 1053400., 829850.,
      704968.,  981728.,  1279800., 1299160., 1318520., 1100000., 859144.,
      672102.,  929768.,  1204570., 1221490., 1238410., 1026920., 797526.,
      339678.,  490760.,  661090.,  668410.,  675730.,  581000.,  466254.,
      639592.,  906336.,  1200280., 1213240., 1226200., 1037920., 821416.,
      1044050., 1462840., 1917550., 1937750., 1957950., 1641400., 1287650.,
      1122170., 1571480., 2058950., 2079150., 2099350., 1759000., 1379210.,
      1160584., 1610720., 2092920., 2112280., 2131640., 1772000., 1379272.,
      1074294., 1482152., 1915210., 1932130., 1949050., 1611560., 1248102.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,   706.,   1018.,  1100.,  782.,    380.,    1432.,
      3284.,  4484.,  5684.,  5144.,  3292.,  1740.,  4792.,   9284.,   10484.,
      11684., 9784.,  5932.,  3100.,  8152.,  15284., 16484.,  17684.,  14424.,
      8572.,  4460.,  11512., 21284., 22484., 23684., 19064.,  11212.,  4790.,
      11132., 19090., 19978., 20866., 15804., 8870.,  270.,    1004.,   2266.,
      3730.,  5194.,  4268.,  2558.,  2780.,  7000.,  12788.,  16292.,  19796.,
      15320., 8764.,  7980.,  18040., 30308., 33812., 37316.,  27640.,  15244.,
      13180., 29080., 47828., 51332., 54836., 39960., 21724.,  18380.,  40120.,
      65348., 68852., 72356., 52280., 28204., 12710., 27356.,  44002.,  46042.,
      48082., 34332., 18326., 510.,   1868.,  4138.,  6754.,   9370.,   7436.,
      4334.,  5180.,  12568., 22292., 28100., 33908., 25496.,  14236.,  14220.,
      31288., 51332., 57140., 62948., 45496., 24556., 23260.,  50008.,  80372.,
      86180., 91988., 65496., 34876., 32300., 68728., 109412., 115220., 121028.,
      85496., 45196., 20630., 43580., 68914., 72106., 75298.,  52860.,  27782.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,   1404.,   1844.,   2240.,   2755.,   3280.,   3205.,   3760.,
      3655.,   4240.,   3428.,   3920.,   2961.,   3348.,   3052.,   3568.,
      4720.,   5440.,   6740.,   7680.,   7540.,   8520.,   8340.,   9360.,
      7536.,   8384.,   6316.,   6976.,   6455.,   7280.,   9660.,   10800.,
      13425.,  14900.,  14675.,  16200.,  15925.,  17500.,  14060.,  15360.,
      11555.,  12560.,  11285.,  12320.,  16380.,  17800.,  22175.,  24000.,
      23425.,  25300.,  24675.,  26600.,  21340.,  22920.,  17225.,  18440.,
      15340.,  16312.,  21712.,  23040.,  28740.,  30440.,  29940.,  31680.,
      31140.,  32920.,  26384.,  27840.,  20908.,  22024.,  16659.,  17496.,
      23300.,  24440.,  30505.,  31960.,  31555.,  33040.,  32605.,  34120.,
      27332.,  28568.,  21447.,  22392.,  10953.,  11988.,  15956.,  17360.,
      21655.,  23440.,  22105.,  23920.,  22555.,  24400.,  19556.,  21056.,
      15813.,  16956.,  21196.,  22720.,  30256.,  32320.,  40340.,  42960.,
      41140.,  43800.,  41940.,  44640.,  35760.,  37952.,  28492.,  30160.,
      35435.,  37520.,  49980.,  52800.,  65925.,  69500.,  67175.,  70800.,
      68425.,  72100.,  57740.,  60720.,  45575.,  47840.,  40265.,  42560.,
      56700.,  59800.,  74675.,  78600.,  75925.,  79900.,  77175.,  81200.,
      65020.,  68280.,  51245.,  53720.,  43564.,  45544.,  60688.,  63360.,
      79140.,  82520.,  80340.,  83760.,  81540.,  85000.,  68048.,  70848.,
      53164.,  55288.,  41607.,  43200.,  57572.,  59720.,  74605.,  77320.,
      75655.,  78400.,  76705.,  79480.,  63620.,  65864.,  49419.,  51120.,
      20781.,  22572.,  30068.,  32480.,  40555.,  43600.,  41005.,  44080.,
      41455.,  44560.,  35684.,  38192.,  28665.,  30564.,  39340.,  41872.,
      55792.,  59200.,  73940.,  78240.,  74740.,  79080.,  75540.,  79920.,
      63984.,  67520.,  50668.,  53344.,  64415.,  67760.,  90300.,  94800.,
      118425., 124100., 119675., 125400., 120925., 126700., 101420., 106080.,
      79595.,  83120.,  69245.,  72800.,  97020.,  101800., 127175., 133200.,
      128425., 134500., 129675., 135800., 108700., 113640., 85265.,  89000.,
      71788.,  74776.,  99664.,  103680., 129540., 134600., 130740., 135840.,
      131940., 137080., 109712., 113856., 85420.,  88552.,  66555.,  68904.,
      91844.,  95000.,  118705., 122680., 119755., 123760., 120805., 124840.,
      99908.,  103160., 77391.,  79848.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   19.,   40.,   37.,   64.,   55.,   88.,
      62.,   88.,   45.,   60.,   18.,   40.,   76.,   128.,  182.,  272.,
      254.,  356.,  326.,  440.,  300.,  384.,  194.,  240.,  98.,   140.,
      276.,  368.,  542.,  692.,  614.,  776.,  686.,  860.,  580.,  704.,
      354.,  420.,  178.,  240.,  476.,  608.,  902.,  1112., 974.,  1196.,
      1046., 1280., 860.,  1024., 514.,  600.,  258.,  340.,  676.,  848.,
      1262., 1532., 1334., 1616., 1406., 1700., 1140., 1344., 674.,  780.,
      287.,  336.,  670.,  772.,  1153., 1312., 1207., 1372., 1261., 1432.,
      958.,  1076., 539.,  600.,  13.,   28.,   54.,   88.,   127.,  184.,
      217.,  280.,  307.,  376.,  254.,  304.,  153.,  180.,  162.,  208.,
      412.,  512.,  758.,  920.,  974.,  1148., 1190., 1376., 924.,  1056.,
      530.,  600.,  482.,  548.,  1092., 1232., 1838., 2060., 2054., 2288.,
      2270., 2516., 1684., 1856., 930.,  1020., 802.,  888.,  1772., 1952.,
      2918., 3200., 3134., 3428., 3350., 3656., 2444., 2656., 1330., 1440.,
      1122., 1228., 2452., 2672., 3998., 4340., 4214., 4568., 4430., 4796.,
      3204., 3456., 1730., 1860., 779.,  840.,  1678., 1804., 2701., 2896.,
      2827., 3028., 2953., 3160., 2110., 2252., 1127., 1200., 25.,   52.,
      102.,  160.,  235.,  328.,  397.,  496.,  559.,  664.,  446.,  520.,
      261.,  300.,  306.,  376.,  748.,  896.,  1334., 1568., 1694., 1940.,
      2054., 2312., 1548., 1728., 866.,  960.,  866.,  956.,  1908., 2096.,
      3134., 3428., 3494., 3800., 3854., 4172., 2788., 3008., 1506., 1620.,
      1426., 1536., 3068., 3296., 4934., 5288., 5294., 5660., 5654., 6032.,
      4028., 4288., 2146., 2280., 1986., 2116., 4228., 4496., 6734., 7148.,
      7094., 7520., 7454., 7892., 5268., 5568., 2786., 2940., 1271., 1344.,
      2686., 2836., 4249., 4480., 4447., 4684., 4645., 4888., 3262., 3428.,
      1715., 1800.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,    10665.,   13996.,   17116.,  21035.,   25175.,   24575.,
      28955.,   28115.,   32735.,   26476.,  30364.,   22941.,   26001.,
      23420.,   27500.,   36368.,   42064.,  52100.,   59540.,   58420.,
      66180.,   64740.,   72820.,   58640.,  65360.,   49244.,   54476.,
      50035.,   56575.,   75060.,   84100.,  104525.,  116225.,  114425.,
      126525.,  124325.,  136825.,  109940., 120260.,  90475.,   98455.,
      88255.,   96475.,   128260.,  139540., 173825.,  188325.,  183725.,
      198625.,  193625.,  208925.,  167620., 180180.,  135415.,  145075.,
      120812.,  128540.,  171088.,  181648., 226580.,  240100.,  236100.,
      249940.,  245620.,  259780.,  208208., 219792.,  165068.,  173948.,
      131625.,  138285.,  184156.,  193228., 241175.,  252755.,  249515.,
      261335.,  257855.,  269915.,  216220., 226060.,  169713.,  177237.,
      85581.,   93825.,   124876.,  136060., 169715.,  183935.,  173255.,
      187715.,  176795.,  191495.,  153484., 165436.,  124245.,  133353.,
      166556.,  178700.,  237968.,  254416., 317540.,  338420.,  323860.,
      345060.,  330180.,  351700.,  281744., 299216.,  224636.,  237932.,
      279355.,  295975.,  394260.,  416740., 520325.,  548825.,  530225.,
      559125.,  540125.,  569425.,  456020., 479780.,  360115.,  378175.,
      317575.,  335875.,  447460.,  472180., 589625.,  620925.,  599525.,
      631225.,  609425.,  641525.,  513700., 539700.,  405055.,  424795.,
      344588.,  360380.,  480208.,  501520., 626420.,  653380.,  635940.,
      663220.,  645460.,  673060.,  538832., 561168.,  421100.,  438044.,
      329697.,  342405.,  456316.,  473452., 591455.,  613115.,  599795.,
      621695.,  608135.,  630275.,  504508., 522412.,  391977.,  405549.,
      162693.,  176985.,  235756.,  255004., 318395.,  342695.,  321935.,
      346475.,  325475.,  350255.,  280492., 300508.,  225549.,  240705.,
      309692.,  329900.,  439568.,  466768., 582980.,  617300.,  589300.,
      623940.,  595620.,  630580.,  504848., 533072.,  400028.,  421388.,
      508675.,  535375.,  713460.,  749380., 936125.,  981425.,  946025.,
      991725.,  955925.,  1002025., 802100., 839300.,  629755.,  657895.,
      546895.,  575275.,  766660.,  804820., 1005425., 1053525., 1015325.,
      1063825., 1025225., 1074125., 859780., 899220.,  674695.,  704515.,
      568364.,  592220.,  789328.,  821392., 1026260., 1066660., 1035780.,
      1076500., 1045300., 1086340., 869456., 902544.,  677132.,  702140.,
      527769.,  546525.,  728476.,  753676., 941735.,  973475.,  950075.,
      982055.,  958415.,  990635.,  792796., 818764.,  614241.,  633861.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   119.,   275.,   251.,   455.,   383.,
      635.,   450.,   650.,   333.,   449.,   106.,   274.,   516.,   916.,
      1294.,  1990.,  1846.,  2638.,  2398.,  3286.,  2244.,  2900.,  1466.,
      1826.,  706.,   1034.,  2036.,  2756.,  4054.,  5230.,  4606.,  5878.,
      5158.,  6526.,  4404.,  5380.,  2706.,  3226.,  1306.,  1794.,  3556.,
      4596.,  6814.,  8470.,  7366.,  9118.,  7918.,  9766.,  6564.,  7860.,
      3946.,  4626.,  1906.,  2554.,  5076.,  6436.,  9574.,  11710., 10126.,
      12358., 10678., 13006., 8724.,  10340., 5186.,  6026.,  2201.,  2589.,
      5162.,  5970.,  8915.,  10175., 9335.,  10643., 9755.,  11111., 7434.,
      8370.,  4193.,  4677.,  77.,    193.,   370.,   634.,   911.,   1355.,
      1619.,  2111.,  2327.,  2867.,  1938.,  2330.,  1173.,  1385.,  1210.,
      1570.,  3108.,  3892.,  5758.,  7030.,  7462.,  8830.,  9166.,  10630.,
      7140.,  8180.,  4106.,  4658.,  3730.,  4250.,  8468.,  9572.,  14278.,
      16030., 15982., 17830., 17686., 19630., 13140., 14500., 7266.,  7978.,
      6250.,  6930.,  13828., 15252., 22798., 25030., 24502., 26830., 26206.,
      28630., 19140., 20820., 10426., 11298., 8770.,  9610.,  19188., 20932.,
      31318., 34030., 33022., 35830., 34726., 37630., 25140., 27140., 13586.,
      14618., 6113.,  6597.,  13178., 14178., 21227., 22775., 22223., 23819.,
      23219., 24863., 16602., 17730., 8873.,  9453.,  149.,   361.,   706.,
      1162.,  1703.,  2435.,  2987.,  3767.,  4271.,  5099.,  3426.,  4010.,
      2013.,  2321.,  2314.,  2866.,  5700.,  6868.,  10222., 12070., 13078.,
      15022., 15934., 17974., 12036., 13460., 6746.,  7490.,  6754.,  7466.,
      14900., 16388., 24502., 26830., 27358., 29782., 30214., 32734., 21876.,
      23620., 11826., 12730., 11194., 12066., 24100., 25908., 38782., 41590.,
      41638., 44542., 44494., 47494., 31716., 33780., 16906., 17970., 15634.,
      16666., 33300., 35428., 53062., 56350., 55918., 59302., 58774., 62254.,
      41556., 43940., 21986., 23210., 10025., 10605., 21194., 22386., 33539.,
      35375., 35111., 36995., 36683., 38615., 25770., 27090., 13553., 14229.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,   83070.,   108968.,  133736.,  164290.,  197170.,  192370.,
      227170.,  220450.,  257170.,  208040.,  238952.,  180558.,  204894.,
      183400.,  215848.,  285408.,  330720.,  409560.,  468760.,  459800.,
      521560.,  510040.,  574360.,  462560.,  516064.,  388840.,  430504.,
      393890.,  445970.,  591640.,  663640.,  824750.,  917950.,  903550.,
      999950.,  982350.,  1081950., 869400.,  951640.,  715970.,  779570.,
      697970.,  763490.,  1015000., 1104920., 1376350., 1491950., 1455150.,
      1573950., 1533950., 1655950., 1328600., 1428760., 1073810., 1150850.,
      958888.,  1020520., 1358304., 1442528., 1799320., 1907160., 1875160.,
      1985560., 1951000., 2063960., 1654240., 1746656., 1311784., 1382632.,
      1046430., 1099566., 1464296., 1536680., 1917970., 2010370., 1984450.,
      2078770., 2050930., 2147170., 1720040., 1798568., 1350270., 1410318.,
      676494.,  742302.,  987944.,  1077224., 1343650., 1457170., 1371730.,
      1487170., 1399810., 1517170., 1216040., 1311464., 984942.,  1057662.,
      1320424., 1417384., 1887456., 2018784., 2519640., 2686360., 2569880.,
      2739160., 2620120., 2791960., 2236640., 2376160., 1783912., 1890088.,
      2218370., 2351090., 3131800., 3311320., 4134350., 4361950., 4213150.,
      4443950., 4291950., 4525950., 3624600., 3814360., 2863010., 3007250.,
      2522450., 2668610., 3555160., 3752600., 4685950., 4935950., 4764750.,
      5017950., 4843550., 5099950., 4083800., 4291480., 3220850., 3378530.,
      2741032., 2867176., 3820512., 3990752., 4984600., 5199960., 5060440.,
      5278360., 5136280., 5356760., 4288480., 4466912., 3351976., 3487336.,
      2624958., 2726478., 3633512., 3770408., 4710130., 4883170., 4776610.,
      4951570., 4843090., 5019970., 4018280., 4161320., 3122334., 3230766.,
      1287342., 1401534., 1866920., 2020712., 2523010., 2717170., 2551090.,
      2747170., 2579170., 2777170., 2224040., 2383976., 1789326., 1910430.,
      2457448., 2618920., 3489504., 3706848., 4629720., 4903960., 4679960.,
      4956760., 4730200., 5009560., 4010720., 4236256., 3178984., 3349672.,
      4042850., 4256210., 5671960., 5959000., 7443950., 7805950., 7522750.,
      7887950., 7601550., 7969950., 6379800., 6677080., 5010050., 5234930.,
      4346930., 4573730., 6095320., 6400280., 7995550., 8379950., 8074350.,
      8461950., 8153150., 8543950., 6839000., 7154200., 5367890., 5606210.,
      4523176., 4713832., 6282720., 6538976., 8169880., 8492760., 8245720.,
      8571160., 8321560., 8649560., 6922720., 7187168., 5392168., 5592040.,
      4203486., 4353390., 5802728., 6004136., 7502290., 7755970., 7568770.,
      7824370., 7635250., 7892770., 6316520., 6524072., 4894398., 5051214.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   1834.,   3418.,
      2842.,   4810.,   3420.,   4988.,   2558.,   3470.,   700.,    2012.,
      3768.,   6904.,   9716.,   15188.,  14036.,  20276.,  18356.,  25364.,
      17336.,  22520.,  11388.,  14236.,  5340.,   7932.,   15608.,  21304.,
      31316.,  40628.,  35636.,  45716.,  39956.,  50804.,  34296.,  42040.,
      21148.,  25276.,  9980.,   13852.,  27448.,  35704.,  52916.,  66068.,
      57236.,  71156.,  61556.,  76244.,  51256.,  61560.,  30908.,  36316.,
      14620.,  19772.,  39288.,  50104.,  74516.,  91508.,  78836.,  96596.,
      83156.,  101684., 68216.,  81080.,  40668.,  47356.,  17230.,  20318.,
      40508.,  46940.,  70090.,  80122.,  73402.,  83818.,  76714.,  87514.,
      58556.,  66012.,  33070.,  36926.,  510.,    1422.,   2716.,   4796.,
      6874.,   10378.,  12490.,  16378.,  18106.,  22378.,  15132.,  18236.,
      9182.,   10862.,  9340.,   12188.,  24120.,  30328.,  44852.,  54932.,
      58388.,  69236.,  71924.,  83540.,  56120.,  64376.,  32316.,  36700.,
      29340.,  33468.,  66680.,  75448.,  112532., 126452., 126068., 140756.,
      139604., 155060., 103800., 114616., 57436.,  63100.,  49340.,  54748.,
      109240., 120568., 180212., 197972., 193748., 212276., 207284., 226580.,
      151480., 164856., 82556.,  89500.,  69340.,  76028.,  151800., 165688.,
      247892., 269492., 261428., 283796., 274964., 298100., 199160., 215096.,
      107676., 115900., 48430.,  52286.,  104444., 112412., 168298., 180634.,
      176218., 188938., 184138., 197242., 131708., 140700., 70414.,  75038.,
      990.,    2670.,   5212.,   8828.,   12922.,  18730.,  23146.,  29338.,
      33370.,  39946.,  26844.,  31484.,  15806.,  18254.,  17980.,  22364.,
      44472.,  53752.,  79988.,  94676.,  102740., 118196., 125492., 141716.,
      94904.,  106232., 53244.,  59164.,  53340.,  59004.,  117752., 129592.,
      193748., 212276., 216500., 235796., 239252., 259316., 173304., 187192.,
      93724.,  100924., 88700.,  95644.,  191032., 205432., 307508., 329876.,
      330260., 353396., 353012., 376916., 251704., 268152., 134204., 142684.,
      124060., 132284., 264312., 281272., 421268., 447476., 444020., 470996.,
      466772., 494516., 330104., 349112., 174684., 184444., 79630.,  84254.,
      168380., 177884., 266506., 281146., 279034., 294058., 291562., 306970.,
      204860., 215388., 107758., 113150.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      59452.,  61360.,  63292.,  65248.,  84240.,  86848.,  89488.,  92160.,
      111620., 114960., 118340., 121760., 116340., 119760., 123220., 126720.,
      121060., 124560., 128100., 131680., 102672., 105536., 108432., 111360.,
      81436.,  83632.,  85852.,  88096.,  64989.,  66636.,  68301.,  69984.,
      90956.,  93200.,  95468.,  97760.,  119155., 122020., 124915., 127840.,
      123295., 126220., 129175., 132160., 127435., 130420., 133435., 136480.,
      106892., 109328., 111788., 114272., 83925.,  85788.,  87669.,  89568.,
      41769.,  43812.,  45873.,  47952.,  61052.,  63824.,  66620.,  69440.,
      83095.,  86620.,  90175.,  93760.,  84835.,  88420.,  92035.,  95680.,
      86575.,  90220.,  93895.,  97600.,  75260.,  78224.,  81212.,  84224.,
      60993.,  63252.,  65529.,  67824.,  81772.,  84784.,  87820.,  90880.,
      116944., 121024., 125136., 129280., 156180., 161360., 166580., 171840.,
      159300., 164560., 169860., 175200., 162420., 167760., 173140., 178560.,
      138704., 143040., 147408., 151808., 110668., 113968., 117292., 120640.,
      137615., 141740., 145895., 150080., 194340., 199920., 205540., 211200.,
      256625., 263700., 270825., 278000., 261525., 268700., 275925., 283200.,
      266425., 273700., 281025., 288400., 225060., 230960., 236900., 242880.,
      177815., 182300., 186815., 191360., 156515., 161060., 165635., 170240.,
      220660., 226800., 232980., 239200., 290925., 298700., 306525., 314400.,
      295825., 303700., 311625., 319600., 300725., 308700., 316725., 324800.,
      253620., 260080., 266580., 273120., 200075., 204980., 209915., 214880.,
      170332., 174256., 178204., 182176., 237456., 242752., 248080., 253440.,
      309860., 316560., 323300., 330080., 314580., 321360., 328180., 335040.,
      319300., 326160., 333060., 340000., 266640., 272192., 277776., 283392.,
      208444., 212656., 216892., 221152., 163269., 166428., 169605., 172800.,
      226028., 230288., 234572., 238880., 293035., 298420., 303835., 309280.,
      297175., 302620., 308095., 313600., 301315., 306820., 312355., 317920.,
      250028., 254480., 258956., 263456., 194301., 197676., 201069., 204480.,
      79569.,  83124.,  86697.,  90288.,  115484., 120272., 125084., 129920.,
      156175., 162220., 168295., 174400., 157915., 164020., 170155., 176320.,
      159655., 165820., 172015., 178240., 137756., 142736., 147740., 152768.,
      110889., 114660., 118449., 122256., 152332., 157360., 162412., 167488.,
      216400., 223168., 229968., 236800., 287220., 295760., 304340., 312960.,
      290340., 298960., 307620., 316320., 293460., 302160., 310900., 319680.,
      248912., 255936., 262992., 270080., 197356., 202672., 208012., 213376.,
      251015., 257660., 264335., 271040., 352260., 361200., 370180., 379200.,
      462425., 473700., 485025., 496400., 467325., 478700., 490125., 501600.,
      472225., 483700., 495225., 506800., 396420., 405680., 414980., 424320.,
      311375., 318380., 325415., 332480., 269915., 276980., 284075., 291200.,
      378580., 388080., 397620., 407200., 496725., 508700., 520725., 532800.,
      501625., 513700., 525825., 538000., 506525., 518700., 530925., 543200.,
      424980., 434800., 444660., 454560., 333635., 341060., 348515., 356000.,
      281212., 287152., 293116., 299104., 390672., 398656., 406672., 414720.,
      508100., 518160., 528260., 538400., 512820., 522960., 533140., 543360.,
      517540., 527760., 538020., 548320., 430608., 438848., 447120., 455424.,
      335452., 341680., 347932., 354208., 261549., 266220., 270909., 275616.,
      361100., 367376., 373676., 380000., 466915., 474820., 482755., 490720.,
      471055., 479020., 487015., 495040., 475195., 483220., 491275., 499360.,
      393164., 399632., 406124., 412640., 304677., 309564., 314469., 319392.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   103.,   148.,   199.,   256.,   163.,   220.,
      283.,   352.,   202.,   248.,   298.,   352.,   153.,   180.,   209.,
      240.,   34.,    72.,    114.,   160.,   212.,   304.,   404.,   512.,
      566.,   728.,   902.,   1088.,  830.,   1016.,  1214.,  1424.,  1094.,
      1304.,  1526.,  1760.,  1044.,  1200.,  1364.,  1536.,  690.,   776.,
      866.,   960.,   314.,   392.,   474.,   560.,   932.,   1104.,  1284.,
      1472.,  1886.,  2168.,  2462.,  2768.,  2150.,  2456.,  2774.,  3104.,
      2414.,  2744.,  3086.,  3440.,  2084.,  2320.,  2564.,  2816.,  1290.,
      1416.,  1546.,  1680.,  594.,   712.,   834.,   960.,   1652.,  1904.,
      2164.,  2432.,  3206.,  3608.,  4022.,  4448.,  3470.,  3896.,  4334.,
      4784.,  3734.,  4184.,  4646.,  5120.,  3124.,  3440.,  3764.,  4096.,
      1890.,  2056.,  2226.,  2400.,  874.,   1032.,  1194.,  1360.,  2372.,
      2704.,  3044.,  3392.,  4526.,  5048.,  5582.,  6128.,  4790.,  5336.,
      5894.,  6464.,  5054.,  5624.,  6206.,  6800.,  4164.,  4560.,  4964.,
      5376.,  2490.,  2696.,  2906.,  3120.,  1053.,  1148.,  1245.,  1344.,
      2482.,  2680.,  2882.,  3088.,  4303.,  4612.,  4927.,  5248.,  4507.,
      4828.,  5155.,  5488.,  4711.,  5044.,  5383.,  5728.,  3602.,  3832.,
      4066.,  4304.,  2037.,  2156.,  2277.,  2400.,  25.,    52.,    81.,
      112.,   154.,   216.,   282.,   352.,   403.,   508.,   619.,   736.,
      751.,   868.,   991.,   1120.,  1099.,  1228.,  1363.,  1504.,  922.,
      1016.,  1114.,  1216.,  561.,   612.,   665.,   720.,   562.,   648.,
      738.,   832.,   1460.,  1648.,  1844.,  2048.,  2726.,  3032.,  3350.,
      3680.,  3566.,  3896.,  4238.,  4592.,  4406.,  4760.,  5126.,  5504.,
      3444.,  3696.,  3956.,  4224.,  1986.,  2120.,  2258.,  2400.,  1802.,
      1928.,  2058.,  2192.,  4100.,  4368.,  4644.,  4928.,  6926.,  7352.,
      7790.,  8240.,  7766.,  8216.,  8678.,  9152.,  8606.,  9080.,  9566.,
      10064., 6404.,  6736.,  7076.,  7424.,  3546.,  3720.,  3898.,  4080.,
      3042.,  3208.,  3378.,  3552.,  6740.,  7088.,  7444.,  7808.,  11126.,
      11672., 12230., 12800., 11966., 12536., 13118., 13712., 12806., 13400.,
      14006., 14624., 9364.,  9776.,  10196., 10624., 5106.,  5320.,  5538.,
      5760.,  4282.,  4488.,  4698.,  4912.,  9380.,  9808.,  10244., 10688.,
      15326., 15992., 16670., 17360., 16166., 16856., 17558., 18272., 17006.,
      17720., 18446., 19184., 12324., 12816., 13316., 13824., 6666.,  6920.,
      7178.,  7440.,  2997.,  3116.,  3237.,  3360.,  6466.,  6712.,  6962.,
      7216.,  10423., 10804., 11191., 11584., 10915., 11308., 11707., 12112.,
      11407., 11812., 12223., 12640., 8162.,  8440.,  8722.,  9008.,  4365.,
      4508.,  4653.,  4800.,  49.,    100.,   153.,   208.,   298.,   408.,
      522.,   640.,   763.,   940.,   1123.,  1312.,  1399.,  1588.,  1783.,
      1984.,  2035.,  2236.,  2443.,  2656.,  1642.,  1784.,  1930.,  2080.,
      969.,   1044.,  1121.,  1200.,  1090.,  1224.,  1362.,  1504.,  2708.,
      2992.,  3284.,  3584.,  4886.,  5336.,  5798.,  6272.,  6302.,  6776.,
      7262.,  7760.,  7718.,  8216.,  8726.,  9248.,  5844.,  6192.,  6548.,
      6912.,  3282.,  3464.,  3650.,  3840.,  3290.,  3464.,  3642.,  3824.,
      7268.,  7632.,  8004.,  8384.,  11966., 12536., 13118., 13712., 13382.,
      13976., 14582., 15200., 14798., 15416., 16046., 16688., 10724., 11152.,
      11588., 12032., 5802.,  6024.,  6250.,  6480.,  5490.,  5704.,  5922.,
      6144.,  11828., 12272., 12724., 13184., 19046., 19736., 20438., 21152.,
      20462., 21176., 21902., 22640., 21878., 22616., 23366., 24128., 15604.,
      16112., 16628., 17152., 8322.,  8584.,  8850.,  9120.,  7690.,  7944.,
      8202.,  8464.,  16388., 16912., 17444., 17984., 26126., 26936., 27758.,
      28592., 27542., 28376., 29222., 30080., 28958., 29816., 30686., 31568.,
      20484., 21072., 21668., 22272., 10842., 11144., 11450., 11760., 4941.,
      5084.,  5229.,  5376.,  10450., 10744., 11042., 11344., 16543., 16996.,
      17455., 17920., 17323., 17788., 18259., 18736., 18103., 18580., 19063.,
      19552., 12722., 13048., 13378., 13712., 6693.,  6860.,  7029.,  7200.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      471836.,  487052.,  502460.,  518060.,  668752.,  689552.,  710608.,
      731920.,  886340.,  912980.,  939940.,  967220.,  923940.,  951220.,
      978820.,  1006740., 961540.,  989460.,  1017700., 1046260., 815696.,
      838544.,  861648.,  885008.,  647132.,  664652.,  682364.,  700268.,
      516645.,  529785.,  543069.,  556497.,  723196.,  741100.,  759196.,
      777484.,  947555.,  970415.,  993515.,  1016855., 980555.,  1003895.,
      1027475., 1051295., 1013555., 1037375., 1061435., 1085735., 850300.,
      869740.,  889372.,  909196.,  667701.,  682569.,  697581.,  712737.,
      330093.,  346401.,  362853.,  379449.,  482908.,  505036.,  527356.,
      549868.,  657755.,  685895.,  714275.,  742895.,  671555.,  700175.,
      729035.,  758135.,  685355.,  714455.,  743795.,  773375.,  596188.,
      619852.,  643708.,  667756.,  483453.,  501489.,  519669.,  537993.,
      648188.,  672236.,  696476.,  720908.,  927440.,  960016.,  992848.,
      1025936., 1239140., 1280500., 1322180., 1364180., 1263940., 1305940.,
      1348260., 1390900., 1288740., 1331380., 1374340., 1417620., 1101008.,
      1135632., 1170512., 1205648., 878780.,  905132.,  931676.,  958412.,
      1092715., 1125655., 1158835., 1192255., 1543620., 1588180., 1633060.,
      1678260., 2038925., 2095425., 2152325., 2209625., 2077925., 2135225.,
      2192925., 2251025., 2116925., 2175025., 2233525., 2292425., 1788740.,
      1835860., 1883300., 1931060., 1413595., 1449415., 1485475., 1521775.,
      1243075., 1279375., 1315915., 1352695., 1753060., 1802100., 1851460.,
      1901140., 2311925., 2374025., 2436525., 2499425., 2350925., 2413825.,
      2477125., 2540825., 2389925., 2453625., 2517725., 2582225., 2016100.,
      2067700., 2119620., 2171860., 1590835., 1630015., 1669435., 1709095.,
      1354844., 1386188., 1417724., 1449452., 1889104., 1931408., 1973968.,
      2016784., 2465540., 2519060., 2572900., 2627060., 2503140., 2557300.,
      2611780., 2666580., 2540740., 2595540., 2650660., 2706100., 2122064.,
      2166416., 2211024., 2255888., 1659164., 1692812., 1726652., 1760684.,
      1299861., 1325097., 1350477., 1376001., 1799740., 1833772., 1867996.,
      1902412., 2333555., 2376575., 2419835., 2463335., 2366555., 2410055.,
      2453795., 2497775., 2399555., 2443535., 2487755., 2532215., 1991356.,
      2026924., 2062684., 2098636., 1547685., 1574649., 1601757., 1629009.,
      629469.,  657873.,  686421.,  715113.,  914332.,  952588.,  991036.,
      1029676., 1237355., 1285655., 1334195., 1382975., 1251155., 1299935.,
      1348955., 1398215., 1264955., 1314215., 1363715., 1413455., 1092124.,
      1131916., 1171900., 1212076., 879597.,  909729.,  940005.,  970425.,
      1208636., 1248812., 1289180., 1329740., 1717712., 1771792., 1826128.,
      1880720., 2280740., 2348980., 2417540., 2486420., 2305540., 2374420.,
      2443620., 2513140., 2330340., 2399860., 2469700., 2539860., 1977296.,
      2033424., 2089808., 2146448., 1568252., 1610732., 1653404., 1696268.,
      1994875., 2047975., 2101315., 2154895., 2800260., 2871700., 2943460.,
      3015540., 3676925., 3767025., 3857525., 3948425., 3715925., 3806825.,
      3898125., 3989825., 3754925., 3846625., 3938725., 4031225., 3152900.,
      3226900., 3301220., 3375860., 2477035., 2533015., 2589235., 2645695.,
      2145235., 2201695., 2258395., 2315335., 3009700., 3085620., 3161860.,
      3238420., 3949925., 4045625., 4141725., 4238225., 3988925., 4085425.,
      4182325., 4279625., 4027925., 4125225., 4222925., 4321025., 3380260.,
      3458740., 3537540., 3616660., 2654275., 2713615., 2773195., 2833015.,
      2237852., 2285324., 2332988., 2380844., 3109456., 3173264., 3237328.,
      3301648., 4044740., 4125140., 4205860., 4286900., 4082340., 4163380.,
      4244740., 4326420., 4119940., 4201620., 4283620., 4365940., 3428432.,
      3494288., 3560400., 3626768., 2671196., 2720972., 2770940., 2821100.,
      2083077., 2120409., 2157885., 2195505., 2876284., 2926444., 2976796.,
      3027340., 3719555., 3782735., 3846155., 3909815., 3752555., 3816215.,
      3880115., 3944255., 3785555., 3849695., 3914075., 3978695., 3132412.,
      3184108., 3235996., 3288076., 2427669., 2466729., 2505933., 2545281.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   743.,    1091.,   1487.,   1931.,
      1199.,   1643.,   2135.,   2675.,   1530.,   1890.,   2282.,   2706.,
      1173.,   1385.,   1613.,   1857.,   202.,    498.,    826.,    1186.,
      1524.,   2244.,   3028.,   3876.,   4222.,   5494.,   6862.,   8326.,
      6286.,   7750.,   9310.,   10966.,  8350.,   10006.,  11758.,  13606.,
      8052.,   9284.,   10580.,  11940.,  5354.,   6034.,   6746.,   7490.,
      2362.,   2978.,   3626.,   4306.,   7124.,   8484.,   9908.,   11396.,
      14542.,  16774.,  19102.,  21526.,  16606.,  19030.,  21550.,  24166.,
      18670.,  21286.,  23998.,  26806.,  16212.,  18084.,  20020.,  22020.,
      10074.,  11074.,  12106.,  13170.,  4522.,   5458.,   6426.,   7426.,
      12724.,  14724.,  16788.,  18916.,  24862.,  28054.,  31342.,  34726.,
      26926.,  30310.,  33790.,  37366.,  28990.,  32566.,  36238.,  40006.,
      24372.,  26884.,  29460.,  32100.,  14794.,  16114.,  17466.,  18850.,
      6682.,   7938.,   9226.,   10546.,  18324.,  20964.,  23668.,  26436.,
      35182.,  39334.,  43582.,  47926.,  37246.,  41590.,  46030.,  50566.,
      39310.,  43846.,  48478.,  53206.,  32532.,  35684.,  38900.,  42180.,
      19514.,  21154.,  22826.,  24530.,  8237.,   8993.,   9765.,   10553.,
      19466.,  21042.,  22650.,  24290.,  33815.,  36275.,  38783.,  41339.,
      35423.,  37979.,  40583.,  43235.,  37031.,  39683.,  42383.,  45131.,
      28362.,  30194.,  32058.,  33954.,  16061.,  17009.,  17973.,  18953.,
      149.,    361.,    589.,    833.,    1114.,   1602.,   2122.,   2674.,
      3023.,   3851.,   4727.,   5651.,   5783.,   6707.,   7679.,   8699.,
      8543.,   9563.,   10631.,  11747.,  7194.,   7938.,   8714.,   9522.,
      4389.,   4793.,   5213.,   5649.,   4330.,   5010.,   5722.,   6466.,
      11316.,  12804.,  14356.,  15972.,  21214.,  23638.,  26158.,  28774.,
      27886.,  30502.,  33214.,  36022.,  34558.,  37366.,  40270.,  43270.,
      27060.,  29060.,  31124.,  33252.,  15626.,  16690.,  17786.,  18914.,
      14170.,  15170.,  16202.,  17266.,  32276.,  34404.,  36596.,  38852.,
      54574.,  57958.,  61438.,  65014.,  61246.,  64822.,  68494.,  72262.,
      67918.,  71686.,  75550.,  79510.,  50580.,  53220.,  55924.,  58692.,
      28026.,  29410.,  30826.,  32274.,  24010.,  25330.,  26682.,  28066.,
      53236.,  56004.,  58836.,  61732.,  87934.,  92278.,  96718.,  101254.,
      94606.,  99142.,  103774., 108502., 101278., 106006., 110830., 115750.,
      74100.,  77380.,  80724.,  84132.,  40426.,  42130.,  43866.,  45634.,
      33850.,  35490.,  37162.,  38866.,  74196.,  77604.,  81076.,  84612.,
      121294., 126598., 131998., 137494., 127966., 133462., 139054., 144742.,
      134638., 140326., 146110., 151990., 97620.,  101540., 105524., 109572.,
      52826.,  54850.,  56906.,  58994.,  23741.,  24689.,  25653.,  26633.,
      51242.,  53202.,  55194.,  57218.,  82631.,  85667.,  88751.,  91883.,
      86543.,  89675.,  92855.,  96083.,  90455.,  93683.,  96959.,  100283.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.,
      293.,    697.,    1117.,   1553.,   2170.,   3042.,   3946.,   4882.,
      5759.,   7163.,   8615.,   10115.,  10823.,  12323.,  13871.,  15467.,
      15887.,  17483.,  19127.,  20819.,  12858.,  13986.,  15146.,  16338.,
      7605.,   8201.,   8813.,   9441.,   8458.,   9522.,   10618.,  11746.,
      21108.,  23364.,  25684.,  28068.,  38206.,  41782.,  45454.,  49222.,
      49486.,  53254.,  57118.,  61078.,  60766.,  64726.,  68782.,  72934.,
      46068.,  48836.,  51668.,  54564.,  25898.,  27346.,  28826.,  30338.,
      25978.,  27362.,  28778.,  30226.,  57428.,  60324.,  63284.,  66308.,
      94606.,  99142.,  103774., 108502., 105886., 110614., 115438., 120358.,
      117166., 122086., 127102., 132214., 84948.,  88356.,  91828.,  95364.,
      45978.,  47746.,  49546.,  51378.,  43498.,  45202.,  46938.,  48706.,
      93748.,  97284.,  100884., 104548., 151006., 156502., 162094., 167782.,
      162286., 167974., 173758., 179638., 173566., 179446., 185422., 191494.,
      123828., 127876., 131988., 136164., 66058.,  68146.,  70266.,  72418.,
      61018.,  63042.,  65098.,  67186.,  130068., 134244., 138484., 142788.,
      207406., 213862., 220414., 227062., 218686., 225334., 232078., 238918.,
      229966., 236806., 243742., 250774., 162708., 167396., 172148., 176964.,
      86138.,  88546.,  90986.,  93458.,  39245.,  40385.,  41541.,  42713.,
      83018.,  85362.,  87738.,  90146.,  131447., 135059., 138719., 142427.,
      137663., 141371., 145127., 148931., 143879., 147683., 151535., 155435.,
      101130., 103730., 106362., 109026., 53213.,  54545.,  55893.,  57257.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,   275166.,   309870.,   345726.,   405992.,   453800.,
      503144.,   554024.,   617410.,   681010.,   746530.,   813970.,
      727330.,   794770.,   864130.,   935410.,   837250.,   908530.,
      981730.,   1056850.,  794600.,   854696.,   916328.,   979496.,
      692622.,   739998.,   788526.,   838206.,   694120.,   757288.,
      821992.,   888232.,   1086432.,  1174752.,  1265120.,  1357536.,
      1566040.,  1681560.,  1799640.,  1920280.,  1763800.,  1884440.,
      2007640.,  2133400.,  1961560.,  2087320.,  2215640.,  2346520.,
      1784800.,  1889504.,  1996256.,  2105056.,  1504360.,  1585960.,
      1669096.,  1753768.,  1511810.,  1613810.,  1717730.,  1823570.,
      2278360.,  2419480.,  2563160.,  2709400.,  3184750.,  3367550.,
      3553550.,  3742750.,  3495950.,  3685150.,  3877550.,  4073150.,
      3807150.,  4002750.,  4201550.,  4403550.,  3376600.,  3538200.,
      3702360.,  3869080.,  2785730.,  2910770.,  3037730.,  3166610.,
      2711330.,  2840210.,  2971010.,  3103730.,  3949400.,  4126360.,
      4305880.,  4487960.,  5363150.,  5590750.,  5821550.,  6055550.,
      5674350.,  5908350.,  6145550.,  6385950.,  5985550.,  6225950.,
      6469550.,  6716350.,  5191000.,  5388440.,  5588440.,  5791000.,
      4200290.,  4352210.,  4506050.,  4661810.,  3759592.,  3881128.,
      4004200.,  4128808.,  5329376.,  5495520.,  5663712.,  5833952.,
      7064280.,  7277080.,  7492440.,  7710360.,  7364440.,  7582360.,
      7802840.,  8025880.,  7664600.,  7887640.,  8113240.,  8341400.,
      6502880.,  6685408.,  6869984.,  7056608.,  5159656.,  5299624.,
      5441128.,  5584168.,  4120110.,  4225086.,  4331214.,  4438494.,
      5767784.,  5910824.,  6055400.,  6201512.,  7557730.,  7740370.,
      7924930.,  8111410.,  7821250.,  8007730.,  8196130.,  8386450.,
      8084770.,  8275090.,  8467330.,  8661490.,  6783080.,  6938408.,
      7095272.,  7253672.,  5326830.,  5445630.,  5565582.,  5686686.,
      2624526.,  2754846.,  2886318.,  3018942.,  3841256.,  4018088.,
      4196456.,  4376360.,  5234050.,  5458930.,  5685730.,  5914450.,
      5343970.,  5572690.,  5803330.,  6035890.,  5453890.,  5686450.,
      5920930.,  6157330.,  4745960.,  4935080.,  5125736.,  5317928.,
      3849678.,  3993822.,  4139118.,  4285566.,  5075560.,  5234984.,
      5395944.,  5558440.,  7159776.,  7370976.,  7584224.,  7799520.,
      9437784.,  9702808.,  9970392.,  10240536., 9363160.,  9616920.,
      9873240.,  10132120., 9560920.,  9819800.,  10081240., 10345240.,
      8077280.,  8288480.,  8501728.,  8717024.,  6383464.,  6544936.,
      6707944.,  6872488.,  7740226.,  7921586.,  8104866.,  8290066.,
      10660056., 10901528., 11145560., 11392152., 13803694., 14107838.,
      14415182., 14725726., 13514830., 13808990., 14106350., 14406910.,
      13826030., 14126590., 14430350., 14737310., 11559640., 11805208.,
      12053336., 12304024., 9048962.,  9236978.,  9426914.,  9618770.,
      7074018.,  7233106.,  7394114.,  7557042.,  9603160.,  9814936.,
      10029272., 10246168., 12326414., 12593438., 12863662., 13137086.,
      11709870., 11966910., 12227150., 12490590., 12021070., 12284510.,
      12551150., 12820990., 10056280., 10272152., 10490584., 10711576.,
      7876898.,  8042642.,  8210306.,  8379890.,  5351656.,  5471144.,
      5592168.,  5714728.,  7093728.,  7251680.,  7411680.,  7573728.,
      8976344.,  9174808.,  9375832.,  9579416.,  8021080.,  8208280.,
      8398040.,  8590360.,  8321240.,  8513560.,  8708440.,  8905880.,
      6979040.,  7136992.,  7296992.,  7459040.,  5479912.,  5601448.,
      5724520.,  5849128.,  2296430.,  2367102.,  2438926.,  2511902.,
      2782568.,  2874408.,  2967784.,  3062696.,  3343394.,  3457938.,
      3574402.,  3692786.,  2023810.,  2125810.,  2229730.,  2335570.,
      2287330.,  2393170.,  2500930.,  2610610.,  2009960.,  2097704.,
      2186984.,  2277800.,  1645614.,  1713726.,  1782990.,  1853406.,
      1376334.,  1455966.,  1536750.,  1618686.,  2041832.,  2151080.,
      2261864.,  2374184.,  2815810.,  2956210.,  3098530.,  3242770.,
      2925730.,  3069970.,  3216130.,  3364210.,  3035650.,  3183730.,
      3333730.,  3485650.,  2676200.,  2797736.,  2920808.,  3045416.,
      2195982.,  2289438.,  2384046.,  2479806.,  2821480.,  2946088.,
      3072232.,  3199912.,  4086752.,  4256992.,  4429280.,  4603616.,
      5521240.,  5739160.,  5959640.,  6182680.,  5719000.,  5942040.,
      6167640.,  6395800.,  5916760.,  6144920.,  6375640.,  6608920.,
      5112800.,  5299424.,  5488096.,  5678816.,  4123240.,  4266280.,
      4410856.,  4556968.,  4939010.,  5117810.,  5298530.,  5481170.,
      7052760.,  7296280.,  7542360.,  7791000.,  9408750.,  9719550.,
      10033550., 10350750., 9719950.,  10037150., 10357550., 10681150.,
      10031150., 10354750., 10681550., 11011550., 8560600.,  8824600.,
      9091160.,  9360280.,  6827330.,  7029170.,  7232930.,  7438610.,
      6138530.,  6344210.,  6551810.,  6761330.,  8723800.,  9003160.,
      9285080.,  9569560.,  11587150., 11942750., 12301550., 12663550.,
      11898350., 12260350., 12625550., 12993950., 12209550., 12577950.,
      12949550., 13324350., 10375000., 10674840., 10977240., 11282200.,
      8241890.,  8470610.,  8701250.,  8933810.,  7115752.,  7298728.,
      7483240.,  7669288.,  9968096.,  10216160., 10466272., 10718432.,
      13067480., 13382680., 13700440., 14020760., 13367640., 13687960.,
      14010840., 14336280., 13667800., 13993240., 14321240., 14651800.,
      11469280., 11733728., 12000224., 12268768., 9007336.,  9208744.,
      9411688.,  9616168.,  7098030.,  7249086.,  7401294.,  7554654.,
      9861224.,  10065704., 10271720., 10479272., 12828130., 13087570.,
      13348930., 13612210., 13091650., 13354930., 13620130., 13887250.,
      13355170., 13622290., 13891330., 14162290., 11122280., 11339048.,
      11557352., 11777192., 8673390.,  8838270.,  9004302.,  9171486.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    5626.,    8362.,
      11482.,   14986.,   9178.,    12682.,   16570.,   20842.,   11900.,
      14748.,   17852.,   21212.,   9182.,    10862.,   12670.,   14606.,
      1340.,    3676.,    6268.,    9116.,    11512.,   17208.,   23416.,
      30136.,   32564.,   42644.,   53492.,   65108.,   48884.,   60500.,
      72884.,   86036.,   65204.,   78356.,   92276.,   106964.,  63224.,
      73016.,   83320.,   94136.,   42172.,   47580.,   53244.,   59164.,
      18300.,   23196.,   28348.,   33756.,   55672.,   66488.,   77816.,
      89656.,   114164.,  131924.,  150452.,  169748.,  130484.,  149780.,
      169844.,  190676.,  146804.,  167636.,  189236.,  211604.,  127864.,
      142776.,  158200.,  174136.,  79612.,   87580.,   95804.,   104284.,
      35260.,   42716.,   50428.,   58396.,   99832.,   115768.,  132216.,
      149176.,  195764.,  221204.,  247412.,  274388.,  212084.,  239060.,
      266804.,  295316.,  228404.,  256916.,  286196.,  316244.,  192504.,
      212536.,  233080.,  254136.,  117052.,  127580.,  138364.,  149404.,
      52220.,   62236.,   72508.,   83036.,   143992.,  165048.,  186616.,
      208696.,  277364.,  310484.,  344372.,  379028.,  293684.,  328340.,
      363764.,  399956.,  310004.,  346196.,  383156.,  420884.,  257144.,
      282296.,  307960.,  334136.,  154492.,  167580.,  180924.,  194524.,
      65150.,   71182.,   77342.,   83630.,   154172.,  166748.,  179580.,
      192668.,  268090.,  287722.,  307738.,  328138.,  280858.,  301258.,
      322042.,  343210.,  293626.,  314794.,  336346.,  358282.,  225084.,
      239708.,  254588.,  269724.,  127550.,  135118.,  142814.,  150638.,
      990.,     2670.,    4478.,    6414.,    8444.,    12316.,   16444.,
      20828.,   23386.,   29962.,   36922.,   44266.,   45370.,   52714.,
      60442.,   68554.,   67354.,   75466.,   83962.,   92842.,   56828.,
      62748.,   68924.,   75356.,   34718.,   37934.,   41278.,   44750.,
      33980.,   39388.,   45052.,   50972.,   89080.,   100920.,  113272.,
      126136.,  167348.,  186644.,  206708.,  227540.,  220532.,  241364.,
      262964.,  285332.,  273716.,  296084.,  319220.,  343124.,  214520.,
      230456.,  246904.,  263864.,  123964.,  132444.,  141180.,  150172.,
      112380.,  120348.,  128572.,  137052.,  256120.,  273080.,  290552.,
      308536.,  433268.,  460244.,  487988.,  516500.,  486452.,  514964.,
      544244.,  574292.,  539636.,  569684.,  600500.,  632084.,  402040.,
      423096.,  444664.,  466744.,  222844.,  233884.,  245180.,  256732.,
      190780.,  201308.,  212092.,  223132.,  423160.,  445240.,  467832.,
      490936.,  699188.,  733844.,  769268.,  805460.,  752372.,  788564.,
      825524.,  863252.,  805556.,  843284.,  881780.,  921044.,  589560.,
      615736.,  642424.,  669624.,  321724.,  335324.,  349180.,  363292.,
      269180.,  282268.,  295612.,  309212.,  590200.,  617400.,  645112.,
      673336.,  965108.,  1007444., 1050548., 1094420., 1018292., 1062164.,
      1106804., 1152212., 1071476., 1116884., 1163060., 1210004., 777080.,
      808376.,  840184.,  872504.,  420604.,  436764.,  453180.,  469852.,
      188990.,  196558.,  204254.,  212078.,  407996.,  423644.,  439548.,
      455708.,  658042.,  682282.,  706906.,  731914.,  689242.,  714250.,
      739642.,  765418.,  720442.,  746218.,  772378.,  798922.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.,
      1950.,    5166.,    8510.,    11982.,   16508.,   23452.,   30652.,
      38108.,   44698.,   55882.,   67450.,   79402.,   85114.,   97066.,
      109402.,  122122.,  125530.,  138250.,  151354.,  164842.,  101756.,
      110748.,  119996.,  129500.,  60254.,   65006.,   69886.,   74894.,
      66620.,   75100.,   83836.,   92828.,   166648.,  184632.,  203128.,
      222136.,  302132.,  330644.,  359924.,  389972.,  392180.,  422228.,
      453044.,  484628.,  482228.,  513812.,  546164.,  579284.,  365816.,
      387896.,  410488.,  433592.,  205756.,  217308.,  229116.,  241180.,
      206460.,  217500.,  228796.,  240348.,  456568.,  479672.,  503288.,
      527416.,  752372.,  788564.,  825524.,  863252.,  842420.,  880148.,
      918644.,  957908.,  932468.,  971732.,  1011764., 1052564., 676216.,
      703416.,  731128.,  759352.,  366076.,  380188.,  394556.,  409180.,
      346300.,  359900.,  373756.,  387868.,  746488.,  774712.,  803448.,
      832696.,  1202612., 1246484., 1291124., 1336532., 1292660., 1338068.,
      1384244., 1431188., 1382708., 1429652., 1477364., 1525844., 986616.,
      1018936., 1051768., 1085112., 526396.,  543068.,  559996.,  577180.,
      486140.,  502300.,  518716.,  535388.,  1036408., 1069752., 1103608.,
      1137976., 1652852., 1704404., 1756724., 1809812., 1742900., 1795988.,
      1849844., 1904468., 1832948., 1887572., 1942964., 1999124., 1297016.,
      1334456., 1372408., 1410872., 686716.,  705948.,  725436.,  745180.,
      312830.,  321934.,  331166.,  340526.,  661820.,  680540.,  699516.,
      718748.,  1047994., 1076842., 1106074., 1135690., 1097626., 1127242.,
      1157242., 1187626., 1147258., 1177642., 1208410., 1239562., 806460.,
      827228.,  848252.,  869532.,  424382.,  435022.,  445790.,  456686.};
  const std::array<int, 4> in_shape = {{3, 6, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,   610.,   890.,   1010.,  1130.,  1250.,  1144.,  969.,   988.,
      1500.,  2110.,  2320.,  2530.,  2740.,  2436.,  2014.,  2030.,  3000.,
      4125.,  4450.,  4775.,  5100.,  4450.,  3620.,  3470.,  5000.,  6725.,
      7050.,  7375.,  7700.,  6610.,  5300.,  4612.,  6500.,  8570.,  8880.,
      9190.,  9500.,  8012.,  6322.,  4956.,  6910.,  9020.,  9290.,  9560.,
      9830.,  8212.,  6423.,  3408.,  4930.,  6650.,  6770.,  6890.,  7010.,
      6040.,  4857.,  6460.,  9180.,  12190., 12400., 12610., 12820., 10884.,
      8638.,  10670., 15000., 19725., 20050., 20375., 20700., 17410., 13700.,
      12110., 17000., 22325., 22650., 22975., 23300., 19570., 15380., 12964.,
      18020., 23450., 23760., 24070., 24380., 20300., 15826., 12300., 16990.,
      21980., 22250., 22520., 22790., 18868., 14631., 6432.,  9250.,  12410.,
      12530., 12650., 12770., 10936., 8745.,  11932., 16860., 22270., 22480.,
      22690., 22900., 19332., 15262., 19310., 27000., 35325., 35650., 35975.,
      36300., 30370., 23780., 20750., 29000., 37925., 38250., 38575., 38900.,
      32530., 25460., 21316., 29540., 38330., 38640., 38950., 39260., 32588.,
      25330., 19644., 27070., 34940., 35210., 35480., 35750., 29524., 22839.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   20.,   30.,   34.,   31.,   20.,   11.,   35.,
      74.,   130.,  166.,  161.,  133.,  80.,   41.,   105.,  194.,  310.,
      346.,  311.,  243.,  140.,  71.,   175.,  314.,  490.,  526.,  461.,
      353.,  200.,  101.,  245.,  434.,  670.,  706.,  611.,  463.,  260.,
      105.,  236.,  394.,  580.,  606.,  502.,  367.,  200.,  9.,    28.,
      58.,   100.,  142.,  130.,  103.,  60.,   67.,   163.,  290.,  450.,
      550.,  473.,  357.,  200.,  177.,  393.,  650.,  950.,  1050., 863.,
      627.,  340.,  287.,  623.,  1010., 1450., 1550., 1253., 897.,  480.,
      397.,  853.,  1370., 1950., 2050., 1643., 1167., 620.,  273.,  580.,
      922.,  1300., 1358., 1078., 759.,  400.,  17.,   52.,   106.,  180.,
      254.,  226.,  175.,  100.,  123.,  291.,  506.,  770.,  934.,  785.,
      581.,  320.,  313.,  681.,  1106., 1590., 1754., 1415., 1011., 540.,
      503.,  1071., 1706., 2410., 2574., 2045., 1441., 760.,  693.,  1461.,
      2306., 3230., 3394., 2675., 1871., 980.,  441.,  924.,  1450., 2020.,
      2110., 1654., 1151., 600.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,   4460.,   6565.,   7495.,   8425.,   9355.,   8612.,   7329.,
      7352.,   11232.,  15880.,  17520.,  19160.,  20800.,  18560.,  15392.,
      15355.,  22780.,  31425.,  33975.,  36525.,  39075.,  34180.,  27865.,
      26635.,  38460.,  51825.,  54375.,  56925.,  59475.,  51140.,  41065.,
      35840.,  50560.,  66720.,  69160.,  71600.,  74040.,  62496.,  49352.,
      38739.,  54044.,  70585.,  72715.,  74845.,  76975.,  64340.,  50349.,
      26103.,  37868.,  51205.,  52135.,  53065.,  53995.,  46628.,  37569.,
      49976.,  71136.,  94600.,  96240.,  97880.,  99520.,  84608.,  67232.,
      83035.,  116860., 153825., 156375., 158925., 161475., 135940., 107065.,
      94315.,  132540., 174225., 176775., 179325., 181875., 152900., 120265.,
      101504., 141184., 183840., 186280., 188720., 191160., 159264., 124232.,
      96627.,  133532., 172825., 174955., 177085., 179215., 148436., 115149.,
      49431.,  71276.,  95845.,  96775.,  97705.,  98635.,  84644.,  67809.,
      92600.,  131040., 173320., 174960., 176600., 178240., 150656., 119072.,
      150715., 210940., 276225., 278775., 281325., 283875., 237700., 186265.,
      161995., 226620., 296625., 299175., 301725., 304275., 254660., 199465.,
      167168., 231808., 300960., 303400., 305840., 308280., 256032., 199112.,
      154515., 213020., 275065., 277195., 279325., 281455., 232532., 179949.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,    124.,   196.,   233.,   218.,   143.,   64.,
      224.,   496.,   896.,   1168.,  1156.,  968.,   588.,   284.,   744.,
      1396.,  2256.,  2528.,  2296.,  1808.,  1048.,  504.,   1264.,  2296.,
      3616.,  3888.,  3436.,  2648.,  1508.,  724.,   1784.,  3196.,  4976.,
      5248.,  4576.,  3488.,  1968.,  789.,   1782.,  2987.,  4412.,  4612.,
      3833.,  2810.,  1535.,  53.,    182.,   395.,   700.,   1028.,  953.,
      762.,   447.,   480.,   1184.,  2128.,  3328.,  4112.,  3556.,  2696.,
      1516.,  1340.,  2984.,  4948.,  7248.,  8032.,  6616.,  4816.,  2616.,
      2200.,  4784.,  7768.,  11168., 11952., 9676.,  6936.,  3716.,  3060.,
      6584.,  10588., 15088., 15872., 12736., 9056.,  4816.,  2117.,  4502.,
      7163.,  10108., 10564., 8393.,  5914.,  3119.,  101.,   342.,   731.,
      1276.,  1860.,  1673.,  1306.,  751.,   896.,   2144.,  3760.,  5760.,
      7056.,  5956.,  4424.,  2444.,  2396.,  5224.,  8500.,  12240., 13536.,
      10936., 7824.,  4184.,  3896.,  8304.,  13240., 18720., 20016., 15916.,
      11224., 5924.,  5396.,  11384., 17980., 25200., 26496., 20896., 14624.,
      7664.,  3445.,  7222.,  11339., 15804., 16516., 12953., 9018.,  4703.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,   34024.,   50330.,   57650.,   64970.,   72290.,   66760.,
      56958.,   56632.,   86816.,   123080.,  136040.,  149000.,  161960.,
      144800.,  120280.,  119330.,  177400.,  245150.,  265350.,  285550.,
      305750.,  267800.,  218570.,  208610.,  301560.,  406750.,  426950.,
      447150.,  467350.,  402200.,  323210.,  282520.,  398752.,  526440.,
      545800.,  565160.,  584520.,  493600.,  389944.,  306294.,  427432.,
      558410.,  575330.,  592250.,  609170.,  509320.,  398670.,  204198.,
      296680.,  401690.,  409010.,  416330.,  423650.,  366280.,  295422.,
      393016.,  559904.,  745160.,  758120.,  771080.,  784040.,  667040.,
      530392.,  655010.,  922360.,  1214750., 1234950., 1255150., 1275350.,
      1074200., 846410.,  744290.,  1046520., 1376350., 1396550., 1416750.,
      1436950., 1208600., 951050.,  803224.,  1117600., 1455720., 1475080.,
      1494440., 1513800., 1261600., 984376.,  765942.,  1058728., 1370570.,
      1387490., 1404410., 1421330., 1177480., 913614.,  387366.,  559336.,
      753050.,  760370.,  767690.,  775010.,  665800.,  533886.,  729400.,
      1032992., 1367240., 1380200., 1393160., 1406120., 1189280., 940504.,
      1190690., 1667320., 2184350., 2204550., 2224750., 2244950., 1880600.,
      1474250., 1279970., 1791480., 2345950., 2366150., 2386350., 2406550.,
      2015000., 1578890., 1323928., 1836448., 2385000., 2404360., 2423720.,
      2443080., 2029600., 1578808., 1225590., 1690024., 2182730., 2199650.,
      2216570., 2233490., 1845640., 1428558.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   394.,    856.,    1400.,   1714.,   1628.,   1078.,
      420.,   1576.,  3596.,   6608.,   8720.,   8732.,   7368.,   4500.,
      2100.,  5576.,  10556.,  17168.,  19280.,  17612.,  13928.,  8100.,
      3780.,  9576.,  17516.,  27728.,  29840.,  26492.,  20488.,  11700.,
      5460.,  13576., 24476.,  38288.,  40400.,  35372.,  27048.,  15300.,
      6110.,  13836., 23242.,  34392.,  35960.,  29938.,  21980.,  12022.,
      350.,   1292.,  2890.,   5208.,   7800.,   7282.,   5852.,   3446.,
      3620.,  9000.,  16268.,  25552.,  31760.,  27548.,  20936.,  11796.,
      10420., 23240., 38588.,  56592.,  62800.,  51788.,  37736.,  20516.,
      17220., 37480., 60908.,  87632.,  93840.,  76028.,  54536.,  29236.,
      24020., 51720., 83228.,  118672., 124880., 100268., 71336.,  37956.,
      16670., 35468., 56458.,  79704.,  83320.,  66226.,  46684.,  24630.,
      670.,   2444.,  5386.,   9560.,   14200.,  12850.,  10076.,  5814.,
      6820.,  16424., 28940.,  44496.,  54800.,  46364.,  34504.,  19092.,
      18740., 40904., 66620.,  96016.,  106320., 85964.,  61544.,  32932.,
      30660., 65384., 104300., 147536., 157840., 125564., 88584.,  46772.,
      42580., 89864., 141980., 199056., 209360., 165164., 115624., 60612.,
      27230., 57100., 89674.,  125016., 130680., 102514., 71388.,  37238.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,   1536.,   2020.,   2440.,   3005.,   3560.,   3455.,   4040.,
      3905.,   4520.,   4355.,   5000.,   4036.,   4576.,   3453.,   3876.,
      3400.,   3952.,   5232.,   6000.,   7440.,   8440.,   8240.,   9280.,
      9040.,   10120.,  9840.,   10960.,  8816.,   9744.,   7336.,   8056.,
      7235.,   8120.,   10780.,  12000.,  14925.,  16500.,  16175.,  17800.,
      17425.,  19100.,  18675.,  20400.,  16380.,  17800.,  13385.,  14480.,
      12755.,  13880.,  18460.,  20000.,  24925.,  26900.,  26175.,  28200.,
      27425.,  29500.,  28675.,  30800.,  24700.,  26440.,  19865.,  21200.,
      17392.,  18448.,  24560.,  26000.,  32440.,  34280.,  33640.,  35520.,
      34840.,  36760.,  36040.,  38000.,  30448.,  32048.,  24064.,  25288.,
      18915.,  19824.,  26404.,  27640.,  34505.,  36080.,  35555.,  37160.,
      36605.,  38240.,  37655.,  39320.,  31492.,  32848.,  24657.,  25692.,
      12471.,  13632.,  18148.,  19720.,  24605.,  26600.,  25055.,  27080.,
      25505.,  27560.,  25955.,  28040.,  22468.,  24160.,  18141.,  19428.,
      24136.,  25840.,  34416.,  36720.,  45840.,  48760.,  46640.,  49600.,
      47440.,  50440.,  48240.,  51280.,  41072.,  43536.,  32680.,  34552.,
      40355.,  42680.,  56860.,  60000.,  74925.,  78900.,  76175.,  80200.,
      77425.,  81500.,  78675.,  82800.,  66300.,  69640.,  52265.,  54800.,
      45875.,  48440.,  64540.,  68000.,  84925.,  89300.,  86175.,  90600.,
      87425.,  91900.,  88675.,  93200.,  74620.,  78280.,  58745.,  61520.,
      49648.,  51856.,  69104.,  72080.,  90040.,  93800.,  91240.,  95040.,
      92440.,  96280.,  93640.,  97520.,  78064.,  81200.,  60928.,  63304.,
      47427.,  49200.,  65572.,  67960.,  84905.,  87920.,  85955.,  89000.,
      87005.,  90080.,  88055.,  91160.,  72964.,  75472.,  56625.,  58524.,
      23703.,  25728.,  34276.,  37000.,  46205.,  49640.,  46655.,  50120.,
      47105.,  50600.,  47555.,  51080.,  40900.,  43744.,  32829.,  34980.,
      44872.,  47728.,  63600.,  67440.,  84240.,  89080.,  85040.,  89920.,
      85840.,  90760.,  86640.,  91600.,  73328.,  77328.,  58024.,  61048.,
      73475.,  77240.,  102940., 108000., 134925., 141300., 136175., 142600.,
      137425., 143900., 138675., 145200., 116220., 121480., 91145.,  95120.,
      78995.,  83000.,  110620., 116000., 144925., 151700., 146175., 153000.,
      147425., 154300., 148675., 155600., 124540., 130120., 97625.,  101840.,
      81904.,  85264.,  113648., 118160., 147640., 153320., 148840., 154560.,
      150040., 155800., 151240., 157040., 125680., 130352., 97792.,  101320.,
      75939.,  78576.,  104740., 108280., 135305., 139760., 136355., 140840.,
      137405., 141920., 138455., 143000., 114436., 118096., 88593.,  91356.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,     6.,     16.,    19.,    40.,    44.,    80.,   76.,
      120.,  97.,    136.,   94.,    124.,   63.,    80.,    20.,   44.,
      84.,   140.,   200.,   296.,   376.,   520.,   504.,   664.,  512.,
      644.,  436.,   532.,   268.,   320.,   120.,   164.,   324.,  420.,
      620.,  776.,   1016.,  1240.,  1144.,  1384.,  1052.,  1244., 836.,
      972.,  488.,   560.,   220.,   284.,   564.,   700.,   1040., 1256.,
      1656., 1960.,  1784.,  2104.,  1592.,  1844.,  1236.,  1412., 708.,
      800.,  320.,   404.,   804.,   980.,   1460.,  1736.,  2296., 2680.,
      2424., 2824.,  2132.,  2444.,  1636.,  1852.,  928.,   1040., 369.,
      420.,  838.,   944.,   1411.,  1576.,  2092.,  2320.,  2188., 2424.,
      1825., 2008.,  1342.,  1468.,  735.,   800.,   17.,    36.,   70.,
      112.,  163.,   232.,   300.,   400.,   460.,   568.,   433.,  520.,
      350.,  412.,   207.,   240.,   212.,   268.,   532.,   652.,  968.,
      1160., 1528.,  1800.,  1912.,  2200.,  1664.,  1892.,  1268., 1428.,
      716.,  800.,   632.,   708.,   1412.,  1572.,  2348.,  2600., 3448.,
      3800., 3832.,  4200.,  3164.,  3452.,  2308.,  2508.,  1256., 1360.,
      1052., 1148.,  2292.,  2492.,  3728.,  4040.,  5368.,  5800., 5752.,
      6200., 4664.,  5012.,  3348.,  3588.,  1796.,  1920.,  1472., 1588.,
      3172., 3412.,  5108.,  5480.,  7288.,  7800.,  7672.,  8200., 6164.,
      6572., 4388.,  4668.,  2336.,  2480.,  1025.,  1092.,  2182., 2320.,
      3475., 3688.,  4908.,  5200.,  5132.,  5432.,  4081.,  4312., 2878.,
      3036., 1519.,  1600.,  33.,    68.,    134.,   208.,   307.,  424.,
      556.,  720.,   844.,   1016.,  769.,   904.,   606.,   700.,  351.,
      400.,  404.,   492.,   980.,   1164.,  1736.,  2024.,  2680., 3080.,
      3320., 3736.,  2816.,  3140.,  2100.,  2324.,  1164.,  1280., 1144.,
      1252., 2500.,  2724.,  4076.,  4424.,  5880.,  6360.,  6520., 7016.,
      5276., 5660.,  3780.,  4044.,  2024.,  2160.,  1884.,  2012., 4020.,
      4284., 6416.,  6824.,  9080.,  9640.,  9720.,  10296., 7736., 8180.,
      5460., 5764.,  2884.,  3040.,  2624.,  2772.,  5540.,  5844., 8756.,
      9224., 12280., 12920., 12920., 13576., 10196., 10700., 7140., 7484.,
      3744., 3920.,  1681.,  1764.,  3526.,  3696.,  5539.,  5800., 7724.,
      8080., 8076.,  8440.,  6337.,  6616.,  4414.,  4604.,  2303., 2400.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,    11685.,   15356.,   18668.,   22975.,   27355.,   26515.,
      31135.,   30055.,   34915.,   33595.,   38695.,   31244.,   35516.,
      26805.,   30153.,   26132.,   30500.,   40368.,   46448.,   57580.,
      65500.,   63900.,   72140.,   70220.,   78780.,   76540.,   85420.,
      68720.,   76080.,   57284.,   62996.,   56155.,   63175.,   83860.,
      93540.,   116325.,  128825.,  126225.,  139125.,  136125.,  149425.,
      146025.,  159725.,  128260.,  139540.,  104935.,  113635.,  99835.,
      108775.,  144660.,  156900.,  195525.,  211225.,  205425.,  221525.,
      215325.,  231825.,  225225.,  242125.,  194180.,  208020.,  156295.,
      166915.,  137060.,  145460.,  193648.,  205104.,  255900.,  270540.,
      265420.,  280380.,  274940.,  290220.,  284460.,  300060.,  240432.,
      253168.,  190100.,  199844.,  149529.,  156765.,  208796.,  218636.,
      272935.,  285475.,  281275.,  294055.,  289615.,  302635.,  297955.,
      311215.,  249260.,  260060.,  195213.,  203457.,  97473.,   106725.,
      142076.,  154604.,  192895.,  208795.,  196435.,  212575.,  199975.,
      216355.,  203515.,  220135.,  176396.,  189884.,  142581.,  152841.,
      189716.,  203300.,  270768.,  289136.,  360940.,  384220.,  367260.,
      390860.,  373580.,  397500.,  379900.,  404140.,  323696.,  343344.,
      257732.,  272660.,  318235.,  336775.,  448660.,  473700.,  591525.,
      623225.,  601425.,  633525.,  611325.,  643825.,  621225.,  654125.,
      523780.,  550420.,  413095.,  433315.,  361915.,  382375.,  509460.,
      537060.,  670725.,  705625.,  680625.,  715925.,  690525.,  726225.,
      700425.,  736525.,  589700.,  618900.,  464455.,  486595.,  392804.,
      410420.,  546928.,  570672.,  712860.,  742860.,  722380.,  752700.,
      731900.,  762540.,  741420.,  772380.,  618288.,  643312.,  482708.,
      501668.,  375897.,  390045.,  519836.,  538892.,  673255.,  697315.,
      681595.,  705895.,  689935.,  714475.,  698275.,  723055.,  578732.,
      598748.,  449229.,  464385.,  185601.,  201765.,  268796.,  290540.,
      362815.,  390235.,  366355.,  394015.,  369895.,  397795.,  373435.,
      401575.,  321548.,  344252.,  258357.,  275529.,  353300.,  376100.,
      501168.,  531824.,  664300.,  702940.,  670620.,  709580.,  676940.,
      716220.,  683260.,  722860.,  578672.,  610608.,  458180.,  482324.,
      580315.,  610375.,  813460.,  853860.,  1066725., 1117625., 1076625.,
      1127925., 1086525., 1138225., 1096425., 1148525., 919300.,  961300.,
      721255.,  752995.,  623995.,  655975.,  874260.,  917220.,  1145925.,
      1200025., 1155825., 1210325., 1165725., 1220625., 1175625., 1230925.,
      985220.,  1029780., 772615.,  806275.,  648548.,  675380.,  900208.,
      936240.,  1169820., 1215180., 1179340., 1225020., 1188860., 1234860.,
      1198380., 1244700., 996144.,  1033456., 775316.,  803492.,  602265.,
      623325.,  830876.,  859148.,  1073575., 1109155., 1081915., 1117735.,
      1090255., 1126315., 1098595., 1134895., 908204.,  937436.,  703245.,
      725313.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     34.,    106.,   119.,   275.,   292.,   564.,
      532.,    868.,    707.,   1007.,  698.,   930.,   473.,   605.,
      118.,    302.,    572.,   1004.,  1426.,  2170.,  2744.,  3864.,
      3736.,   4984.,   3850.,  4882.,  3308.,  4060.,  2046.,  2454.,
      878.,    1222.,   2412.,  3164.,  4666.,  5890.,  7704.,  9464.,
      8696.,   10584.,  8050.,  9562.,  6428.,  7500.,  3766.,  4334.,
      1638.,   2142.,   4252.,  5324.,  7906.,  9610.,  12664., 15064.,
      13656.,  16184.,  12250., 14242., 9548.,  10940., 5486.,  6214.,
      2398.,   3062.,   6092.,  7484.,  11146., 13330., 17624., 20664.,
      18616.,  21784.,  16450., 18922., 12668., 14380., 7206.,  8094.,
      2853.,   3257.,   6498.,  7338.,  10967., 12275., 16292., 18100.,
      17044.,  18916.,  14243., 15695., 10490., 11490., 5753.,  6269.,
      101.,    249.,    482.,   810.,   1175.,  1715.,  2212.,  2996.,
      3476.,   4324.,   3299.,  3983.,  2682.,  3170.,  1593.,  1853.,
      1590.,   2030.,   4028.,  4972.,  7378.,  8890.,  11704., 13848.,
      14744.,  17016.,  12874., 14674., 9836.,  11100., 5566.,  6230.,
      4910.,   5510.,   10988., 12252., 18298., 20290., 26904., 29688.,
      29944.,  32856.,  24754., 27034., 18076., 19660., 9846.,  10670.,
      8230.,   8990.,   17948., 19532., 29218., 31690., 42104., 45528.,
      45144.,  48696.,  36634., 39394., 26316., 28220., 14126., 15110.,
      11550.,  12470.,  24908., 26812., 40138., 43090., 57304., 61368.,
      60344.,  64536.,  48514., 51754., 34556., 36780., 18406., 19550.,
      8069.,   8601.,   17186., 18282., 27383., 29075., 38692., 41012.,
      40468.,  42852.,  32195., 34031., 22714., 23970., 11993., 12637.,
      197.,    473.,    930.,   1514.,  2231.,  3155.,  4132.,  5428.,
      6420.,   7780.,   5891.,  6959.,  4666.,  5410.,  2713.,  3101.,
      3062.,   3758.,   7484.,  8940.,  13330., 15610., 20664., 23832.,
      25752.,  29048.,  21898., 24466., 16364., 18140., 9086.,  10006.,
      8942.,   9798.,   19564., 21340., 31930., 34690., 46104., 49912.,
      51192.,  55128.,  41458., 44506., 29724., 31820., 15926., 17006.,
      14822.,  15838.,  31644., 33740., 50530., 53770., 71544., 75992.,
      76632.,  81208.,  61018., 64546., 43084., 45500., 22766., 24006.,
      20702.,  21878.,  43724., 46140., 69130., 72850., 96984., 102072.,
      102072., 107288., 80578., 84586., 56444., 59180., 29606., 31006.,
      13285.,  13945.,  27874., 29226., 43799., 45875., 61092., 63924.,
      63892.,  66788.,  50147., 52367., 34938., 36450., 18233., 19005.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,   91086.,   119656.,  145960.,  179570.,  214370.,  207650.,
      244370.,  235730.,  274370.,  263810.,  304370.,  245800.,  279784.,
      211182.,  237822.,  204808.,  239560.,  317024.,  365408.,  452920.,
      515960.,  503160.,  568760.,  553400.,  621560.,  603640.,  674360.,
      542560.,  601184.,  452680.,  498184.,  442370.,  498290.,  661400.,
      738520.,  918350.,  1017950., 997150.,  1099950., 1075950., 1181950.,
      1154750., 1263950., 1015000., 1104920., 830930.,  900290.,  789890.,
      861170.,  1145240., 1242840., 1548750., 1673950., 1627550., 1755950.,
      1706350., 1837950., 1785150., 1919950., 1539800., 1650200., 1239890.,
      1324610., 1088200., 1155208., 1537888., 1629280., 2032760., 2149560.,
      2108600., 2227960., 2184440., 2306360., 2260280., 2384760., 1910880.,
      2012512., 1511176., 1588936., 1189086., 1246830., 1660648., 1739176.,
      2171090., 2271170., 2237570., 2339570., 2304050., 2407970., 2370530.,
      2476370., 1983400., 2069608., 1553550., 1619358., 770622.,  844494.,
      1124200., 1224232., 1527410., 1654370., 1555490., 1684370., 1583570.,
      1714370., 1611650., 1744370., 1397800., 1505512., 1130478., 1212414.,
      1504264., 1612744., 2147936., 2294624., 2864440., 3050360., 2914680.,
      3103160., 2964920., 3155960., 3015160., 3208760., 2570080., 2727008.,
      2047048., 2166280., 2527490., 2675570., 3564440., 3764440., 4700750.,
      4953950., 4779550., 5035950., 4858350., 5117950., 4937150., 5199950.,
      4163800., 4376600., 3284690., 3446210., 2875010., 3038450., 4048280.,
      4268760., 5331150., 5609950., 5409950., 5691950., 5488750., 5773950.,
      5567550., 5855950., 4688600., 4921880., 3693650., 3870530., 3124936.,
      3265672., 4351840., 4541536., 5673080., 5912760., 5748920., 5991160.,
      5824760., 6069560., 5900600., 6147960., 4921440., 5121376., 3842824.,
      3994312., 2993118., 3106158., 4139752., 4292008., 5362130., 5554370.,
      5428610., 5622770., 5495090., 5691170., 5561570., 5759570., 4609960.,
      4769896., 3578766., 3699870., 1468734., 1597902., 2128744., 2302504.,
      2875250., 3094370., 2903330., 3124370., 2931410., 3154370., 2959490.,
      3184370., 2549800., 2731240., 2049774., 2187006., 2803720., 2985928.,
      3978848., 4223840., 5275960., 5584760., 5326200., 5637560., 5376440.,
      5690360., 5426680., 5743160., 4597600., 4852832., 3641416., 3834376.,
      4612610., 4852850., 6467480., 6790360., 8483150., 8889950., 8561950.,
      8971950., 8640750., 9053950., 8719550., 9135950., 7312600., 7648280.,
      5738450., 5992130., 4960130., 5215730., 6951320., 7294680., 9113550.,
      9545950., 9192350., 9627950., 9271150., 9709950., 9349950., 9791950.,
      7837400., 8193560., 6147410., 6416450., 5161672., 5376136., 7165792.,
      7453792., 9313400., 9675960., 9389240., 9754360., 9465080., 9832760.,
      9540920., 9911160., 7932000., 8230240., 6174472., 6399688., 4797150.,
      4965486., 6618856., 6844840., 8553170., 8837570., 8619650., 8905970.,
      8686130., 8974370., 8752610., 9042770., 7236520., 7470184., 5603982.,
      5780382.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   2104.,   4216.,
      3960.,   6584.,   5386.,   7738.,   5372.,   7196.,   3662.,   4702.,
      780.,    2220.,   4184.,   7576.,   10724.,  16580.,  20912.,  29744.,
      28720.,  38576.,  29828.,  37988.,  25752.,  31704.,  15980.,  19212.,
      6700.,   9420.,   18584.,  24536.,  36164.,  45860.,  59952.,  73904.,
      67760.,  82736.,  62948.,  74948.,  50392.,  58904.,  29580.,  34092.,
      12620.,  16620.,  32984.,  41496.,  61604.,  75140.,  98992.,  118064.,
      106800., 126896., 96068.,  111908., 75032.,  86104.,  43180.,  48972.,
      18540.,  23820.,  47384.,  58456.,  87044.,  104420., 138032., 162224.,
      145840., 171056., 129188., 148868., 99672.,  113304., 56780.,  63852.,
      22430.,  25646.,  51164.,  57852.,  86458.,  96874.,  128568., 142968.,
      134520., 149432., 112522., 124090., 82940.,  90908.,  45518.,  49630.,
      670.,    1838.,   3548.,   6140.,   8890.,   13162.,  16952.,  23160.,
      27000.,  33720.,  25738.,  31162.,  20988.,  24860.,  12494.,  14558.,
      12300.,  15788.,  31320.,  38808.,  57572.,  69572.,  91568.,  108592.,
      115760., 133808., 101252., 115556., 77464.,  87512.,  43884.,  49164.,
      38700.,  43468.,  86680.,  96728.,  144452., 160292., 212528., 234672.,
      236720., 259888., 195812., 213956., 143064., 155672., 77964.,  84524.,
      65100.,  71148.,  142040., 154648., 231332., 251012., 333488., 360752.,
      357680., 385968., 290372., 312356., 208664., 223832., 112044., 119884.,
      91500.,  98828.,  197400., 212568., 318212., 341732., 454448., 486832.,
      478640., 512048., 384932., 410756., 274264., 291992., 146124., 155244.,
      64030.,  68270.,  136412., 145148., 217402., 230890., 307256., 325752.,
      321400., 340408., 255754., 270394., 180476., 190492., 95310.,  100446.,
      1310.,   3502.,   6876.,   11516.,  16954.,  24298.,  31800.,  42104.,
      50040.,  60856.,  46090.,  54586.,  36604.,  42524.,  21326.,  24414.,
      23820.,  29356.,  58456.,  70040.,  104420., 122564., 162224., 187440.,
      202800., 229040., 172676., 193124., 129176., 143320., 71788.,  79116.,
      70700.,  77516.,  154776., 168920., 252740., 274724., 365104., 395440.,
      405680., 437040., 328676., 352964., 235736., 252440., 126348., 134956.,
      117580., 125676., 251096., 267800., 401060., 426884., 567984., 603440.,
      608560., 645040., 484676., 512804., 342296., 361560., 180908., 190796.,
      164460., 173836., 347416., 366680., 549380., 579044., 770864., 811440.,
      811440., 853040., 640676., 672644., 448856., 470680., 235468., 246636.,
      105630., 110894., 221660., 232444., 348346., 364906., 485944., 508536.,
      508280., 531384., 398986., 416698., 278012., 290076., 145102., 151262.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      67492.,  69568.,  71668.,  73792.,  95408.,  98240.,  101104., 104000.,
      126140., 129760., 133420., 137120., 130860., 134560., 138300., 142080.,
      135580., 139360., 143180., 147040., 140300., 144160., 148060., 152000.,
      118640., 121792., 124976., 128192., 93844.,  96256.,  98692.,  101152.,
      73869.,  75660.,  77469.,  79296.,  103180., 105616., 108076., 110560.,
      134915., 138020., 141155., 144320., 139055., 142220., 145415., 148640.,
      143195., 146420., 149675., 152960., 147335., 150620., 153935., 157280.,
      123292., 125968., 128668., 131392., 96585.,  98628.,  100689., 102768.,
      47589.,  49884.,  52197.,  54528.,  69484.,  72592.,  75724.,  78880.,
      94475.,  98420.,  102395., 106400., 96215.,  100220., 104255., 108320.,
      97955.,  102020., 106115., 110240., 99695.,  103820., 107975., 112160.,
      86524.,  89872.,  93244.,  96640.,  70017.,  72564.,  75129.,  77712.,
      93172.,  96544.,  99940.,  103360., 133104., 137664., 142256., 146880.,
      177580., 183360., 189180., 195040., 180700., 186560., 192460., 198400.,
      183820., 189760., 195740., 201760., 186940., 192960., 199020., 205120.,
      159408., 164288., 169200., 174144., 127012., 130720., 134452., 138208.,
      156815., 161420., 166055., 170720., 221220., 227440., 233700., 240000.,
      291825., 299700., 307625., 315600., 296725., 304700., 312725., 320800.,
      301625., 309700., 317825., 326000., 306525., 314700., 322925., 331200.,
      258580., 265200., 271860., 278560., 204035., 209060., 214115., 219200.,
      178415., 183500., 188615., 193760., 251300., 258160., 265060., 272000.,
      331025., 339700., 348425., 357200., 335925., 344700., 353525., 362400.,
      340825., 349700., 358625., 367600., 345725., 354700., 363725., 372800.,
      291220., 298480., 305780., 313120., 229475., 234980., 240515., 246080.,
      194212., 198592., 202996., 207424., 270512., 276416., 282352., 288320.,
      352700., 360160., 367660., 375200., 357420., 364960., 372540., 380160.,
      362140., 369760., 377420., 385120., 366860., 374560., 382300., 390080.,
      306032., 312256., 318512., 324800., 238996., 243712., 248452., 253216.,
      186189., 189708., 193245., 196800., 257548., 262288., 267052., 271840.,
      333635., 339620., 345635., 351680., 337775., 343820., 349895., 356000.,
      341915., 348020., 354155., 360320., 346055., 352220., 358415., 364640.,
      286876., 291856., 296860., 301888., 222729., 226500., 230289., 234096.,
      90789.,  94812.,  98853.,  102912., 131692., 137104., 142540., 148000.,
      177995., 184820., 191675., 198560., 179735., 186620., 193535., 200480.,
      181475., 188420., 195395., 202400., 183215., 190220., 197255., 204320.,
      157948., 163600., 169276., 174976., 127041., 131316., 135609., 139920.,
      173812., 179488., 185188., 190912., 246768., 254400., 262064., 269760.,
      327340., 336960., 346620., 356320., 330460., 340160., 349900., 359680.,
      333580., 343360., 353180., 363040., 336700., 346560., 356460., 366400.,
      285360., 293312., 301296., 309312., 226084., 232096., 238132., 244192.,
      286415., 293900., 301415., 308960., 401700., 411760., 421860., 432000.,
      527025., 539700., 552425., 565200., 531925., 544700., 557525., 570400.,
      536825., 549700., 562625., 575600., 541725., 554700., 567725., 580800.,
      454420., 464880., 475380., 485920., 356675., 364580., 372515., 380480.,
      308015., 315980., 323975., 332000., 431780., 442480., 453220., 464000.,
      566225., 579700., 593225., 606800., 571125., 584700., 598325., 612000.,
      576025., 589700., 603425., 617200., 580925., 594700., 608525., 622400.,
      487060., 498160., 509300., 520480., 382115., 390500., 398915., 407360.,
      320932., 327616., 334324., 341056., 445616., 454592., 463600., 472640.,
      579260., 590560., 601900., 613280., 583980., 595360., 606780., 618240.,
      588700., 600160., 611660., 623200., 593420., 604960., 616540., 628160.,
      493424., 502720., 512048., 521408., 384148., 391168., 398212., 405280.,
      298509., 303756., 309021., 314304., 411916., 418960., 426028., 433120.,
      532355., 541220., 550115., 559040., 536495., 545420., 554375., 563360.,
      540635., 549620., 558635., 567680., 544775., 553820., 562895., 572000.,
      450460., 457744., 465052., 472384., 348873., 354372., 359889., 365424.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   116.,   176.,   244.,   320.,   228.,   304.,
      388.,   480.,   319.,   388.,   463.,   544.,   322.,   376.,   434.,
      496.,   221.,   252.,   285.,   320.,   38.,    80.,    126.,   176.,
      236.,   336.,   444.,   560.,   626.,   800.,   986.,   1184.,  1240.,
      1504.,  1784.,  2080.,  1720.,  2016.,  2328.,  2656.,  1802.,  2048.,
      2306.,  2576.,  1564.,  1744.,  1932.,  2128.,  974.,   1072.,  1174.,
      1280.,  398.,   480.,   566.,   656.,   1116.,  1296.,  1484.,  1680.,
      2186.,  2480.,  2786.,  3104.,  3640.,  4064.,  4504.,  4960.,  4120.,
      4576.,  5048.,  5536.,  3842.,  4208.,  4586.,  4976.,  3084.,  3344.,
      3612.,  3888.,  1814.,  1952.,  2094.,  2240.,  758.,   880.,   1006.,
      1136.,  1996.,  2256.,  2524.,  2800.,  3746.,  4160.,  4586.,  5024.,
      6040.,  6624.,  7224.,  7840.,  6520.,  7136.,  7768.,  8416.,  5882.,
      6368.,  6866.,  7376.,  4604.,  4944.,  5292.,  5648.,  2654.,  2832.,
      3014.,  3200.,  1118.,  1280.,  1446.,  1616.,  2876.,  3216.,  3564.,
      3920.,  5306.,  5840.,  6386.,  6944.,  8440.,  9184.,  9944.,  10720.,
      8920.,  9696.,  10488., 11296., 7922.,  8528.,  9146.,  9776.,  6124.,
      6544.,  6972.,  7408.,  3494.,  3712.,  3934.,  4160.,  1377.,  1476.,
      1577.,  1680.,  3146.,  3352.,  3562.,  3776.,  5323.,  5644.,  5971.,
      6304.,  7924.,  8368.,  8820.,  9280.,  8292.,  8752.,  9220.,  9696.,
      6943.,  7300.,  7663.,  8032.,  5122.,  5368.,  5618.,  5872.,  2813.,
      2940.,  3069.,  3200.,  33.,    68.,    105.,   144.,   202.,   280.,
      362.,   448.,   523.,   652.,   787.,   928.,   1012.,  1200.,  1396.,
      1600.,  1636.,  1840.,  2052.,  2272.,  1567.,  1732.,  1903.,  2080.,
      1282.,  1400.,  1522.,  1648.,  765.,   828.,   893.,   960.,   742.,
      848.,   958.,   1072.,  1900.,  2128.,  2364.,  2608.,  3506.,  3872.,
      4250.,  4640.,  5592.,  6112.,  6648.,  7200.,  7096.,  7648.,  8216.,
      8800.,  6218.,  6656.,  7106.,  7568.,  4764.,  5072.,  5388.,  5712.,
      2702.,  2864.,  3030.,  3200.,  2382.,  2528.,  2678.,  2832.,  5340.,
      5648.,  5964.,  6288.,  8906.,  9392.,  9890.,  10400., 13112., 13792.,
      14488., 15200., 14616., 15328., 16056., 16800., 12098., 12656., 13226.,
      13808., 8844.,  9232.,  9628.,  10032., 4822.,  5024.,  5230.,  5440.,
      4022.,  4208.,  4398.,  4592.,  8780.,  9168.,  9564.,  9968.,  14306.,
      14912., 15530., 16160., 20632., 21472., 22328., 23200., 22136., 23008.,
      23896., 24800., 17978., 18656., 19346., 20048., 12924., 13392., 13868.,
      14352., 6942.,  7184.,  7430.,  7680.,  5662.,  5888.,  6118.,  6352.,
      12220., 12688., 13164., 13648., 19706., 20432., 21170., 21920., 28152.,
      29152., 30168., 31200., 29656., 30688., 31736., 32800., 23858., 24656.,
      25466., 26288., 17004., 17552., 18108., 18672., 9062.,  9344.,  9630.,
      9920.,  3969.,  4100.,  4233.,  4368.,  8458.,  8728.,  9002.,  9280.,
      13483., 13900., 14323., 14752., 19060., 19632., 20212., 20800., 19940.,
      20528., 21124., 21728., 15871., 16324., 16783., 17248., 11202., 11512.,
      11826., 12144., 5917.,  6076.,  6237.,  6400.,  65.,    132.,   201.,
      272.,   394.,   536.,   682.,   832.,   1003.,  1228.,  1459.,  1696.,
      1908.,  2224.,  2548.,  2880.,  3044.,  3376.,  3716.,  4064.,  2815.,
      3076.,  3343.,  3616.,  2242.,  2424.,  2610.,  2800.,  1309.,  1404.,
      1501.,  1600.,  1446.,  1616.,  1790.,  1968.,  3564.,  3920.,  4284.,
      4656.,  6386.,  6944.,  7514.,  8096.,  9944.,  10720., 11512., 12320.,
      12472., 13280., 14104., 14944., 10634., 11264., 11906., 12560., 7964.,
      8400.,  8844.,  9296.,  4430.,  4656.,  4886.,  5120.,  4366.,  4576.,
      4790.,  5008.,  9564.,  10000., 10444., 10896., 15626., 16304., 16994.,
      17696., 22584., 23520., 24472., 25440., 25112., 26080., 27064., 28064.,
      20354., 21104., 21866., 22640., 14604., 15120., 15644., 16176., 7830.,
      8096.,  8366.,  8640.,  7286.,  7536.,  7790.,  8048.,  15564., 16080.,
      16604., 17136., 24866., 25664., 26474., 27296., 35224., 36320., 37432.,
      38560., 37752., 38880., 40024., 41184., 30074., 30944., 31826., 32720.,
      21244., 21840., 22444., 23056., 11230., 11536., 11846., 12160., 10206.,
      10496., 10790., 11088., 21564., 22160., 22764., 23376., 34106., 35024.,
      35954., 36896., 47864., 49120., 50392., 51680., 50392., 51680., 52984.,
      54304., 39794., 40784., 41786., 42800., 27884., 28560., 29244., 29936.,
      14630., 14976., 15326., 15680., 6561.,  6724.,  6889.,  7056.,  13770.,
      14104., 14442., 14784., 21643., 22156., 22675., 23200., 30196., 30896.,
      31604., 32320., 31588., 32304., 33028., 33760., 24799., 25348., 25903.,
      26464., 17282., 17656., 18034., 18416., 9021.,  9212.,  9405.,  9600.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  535820.,  552380.,  569132.,  586076.,  757648.,
      780240.,  803088.,  826192.,  1001940., 1030820., 1060020., 1089540.,
      1039540., 1069060., 1098900., 1129060., 1077140., 1107300., 1137780.,
      1168580., 1114740., 1145540., 1176660., 1208100., 942864.,  968016.,
      993424.,  1019088., 745964.,  765212.,  784652.,  804284.,  587397.,
      601689.,  616125.,  630705.,  820604.,  840044.,  859676.,  879500.,
      1073155., 1097935., 1122955., 1148215., 1106155., 1131415., 1156915.,
      1182655., 1139155., 1164895., 1190875., 1217095., 1172155., 1198375.,
      1224835., 1251535., 981020.,  1002380., 1023932., 1045676., 768621.,
      784929.,  801381.,  817977.,  376149.,  394473.,  412941.,  431553.,
      549692.,  574508.,  599516.,  624716.,  747955.,  779455.,  811195.,
      843175.,  761755.,  793735.,  825955.,  858415.,  775555.,  808015.,
      840715.,  873655.,  789355.,  822295.,  855475.,  888895.,  685532.,
      712268.,  739196.,  766316.,  555069.,  575409.,  595893.,  616521.,
      738668.,  765596.,  792716.,  820028.,  1055760., 1092176., 1128848.,
      1165776., 1409140., 1455300., 1501780., 1548580., 1433940., 1480740.,
      1527860., 1575300., 1458740., 1506180., 1553940., 1602020., 1483540.,
      1531620., 1580020., 1628740., 1265552., 1304528., 1343760., 1383248.,
      1008716., 1038332., 1068140., 1098140., 1245355., 1282135., 1319155.,
      1356415., 1757380., 1807060., 1857060., 1907380., 2318925., 2381825.,
      2445125., 2508825., 2357925., 2421625., 2485725., 2550225., 2396925.,
      2461425., 2526325., 2591625., 2435925., 2501225., 2566925., 2633025.,
      2055460., 2108340., 2161540., 2215060., 1622275., 1662415., 1702795.,
      1743415., 1417195., 1457815., 1498675., 1539775., 1996740., 2051540.,
      2106660., 2162100., 2630925., 2700225., 2769925., 2840025., 2669925.,
      2740025., 2810525., 2881425., 2708925., 2779825., 2851125., 2922825.,
      2747925., 2819625., 2891725., 2964225., 2315300., 2373300., 2431620.,
      2490260., 1824835., 1868815., 1913035., 1957495., 1544972., 1579964.,
      1615148., 1650524., 2152336., 2199504., 2246928., 2294608., 2806740.,
      2866340., 2926260., 2986500., 2844340., 2904580., 2965140., 3026020.,
      2881940., 2942820., 3004020., 3065540., 2919540., 2981060., 3042900.,
      3105060., 2435856., 2485584., 2535568., 2585808., 1902572., 1940252.,
      1978124., 2016188., 1482501., 1510617., 1538877., 1567281., 2050940.,
      2088812., 2126876., 2165132., 2657155., 2704975., 2753035., 2801335.,
      2690155., 2738455., 2786995., 2835775., 2723155., 2771935., 2820955.,
      2870215., 2756155., 2805415., 2854915., 2904655., 2285084., 2324876.,
      2364860., 2405036., 1774317., 1804449., 1834725., 1865145., 718293.,
      750441.,  782733.,  815169.,  1042748., 1085996., 1129436., 1173068.,
      1410355., 1464895., 1519675., 1574695., 1424155., 1479175., 1534435.,
      1589935., 1437955., 1493455., 1549195., 1605175., 1451755., 1507735.,
      1563955., 1620415., 1252316., 1297484., 1342844., 1388396., 1007805.,
      1041969., 1076277., 1110729., 1379180., 1424540., 1470092., 1515836.,
      1958928., 2019920., 2081168., 2142672., 2599540., 2676420., 2753620.,
      2831140., 2624340., 2701860., 2779700., 2857860., 2649140., 2727300.,
      2805780., 2884580., 2673940., 2752740., 2831860., 2911300., 2267024.,
      2330576., 2394384., 2458448., 1796684., 1844732., 1892972., 1941404.,
      2276395., 2336215., 2396275., 2456575., 3193540., 3273940., 3354660.,
      3435700., 4190925., 4292225., 4393925., 4496025., 4229925., 4332025.,
      4434525., 4537425., 4268925., 4371825., 4475125., 4578825., 4307925.,
      4411625., 4515725., 4620225., 3614500., 3698100., 3782020., 3866260.,
      2837635., 2900815., 2964235., 3027895., 2448235., 2511895., 2575795.,
      2639935., 3432900., 3518420., 3604260., 3690420., 4502925., 4610625.,
      4718725., 4827225., 4541925., 4650425., 4759325., 4868625., 4580925.,
      4690225., 4799925., 4910025., 4619925., 4730025., 4840525., 4951425.,
      3874340., 3963060., 4052100., 4141460., 3040195., 3107215., 3174475.,
      3241975., 2554124., 2607548., 2661164., 2714972., 3547024., 3618768.,
      3690768., 3763024., 4611540., 4701860., 4792500., 4883460., 4649140.,
      4740100., 4831380., 4922980., 4686740., 4778340., 4870260., 4962500.,
      4724340., 4816580., 4909140., 5002020., 3928848., 4003152., 4077712.,
      4152528., 3059180., 3115292., 3171596., 3228092., 2377605., 2419545.,
      2461629., 2503857., 3281276., 3337580., 3394076., 3450764., 4241155.,
      4312015., 4383115., 4454455., 4274155., 4345495., 4417075., 4488895.,
      4307155., 4378975., 4451035., 4523335., 4340155., 4412455., 4484995.,
      4557775., 3589148., 3647372., 3705788., 3764396., 2780013., 2823969.,
      2868069., 2912313.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   820.,    1284.,   1812.,   2404.,
      1684.,   2276.,   2932.,   3652.,   2423.,   2963.,   3551.,   4187.,
      2474.,   2898.,   3354.,   3842.,   1709.,   1953.,   2213.,   2489.,
      226.,    554.,    914.,    1306.,   1700.,   2484.,   3332.,   4244.,
      4678.,   6046.,   7510.,   9070.,   9416.,   11496.,  13704.,  16040.,
      13192.,  15528.,  17992.,  20584.,  13942.,  15886.,  17926.,  20062.,
      12164.,  13588.,  15076.,  16628.,  7602.,   8378.,   9186.,   10026.,
      3026.,   3674.,   4354.,   5066.,   8580.,   10004.,  11492.,  13044.,
      16918.,  19246.,  21670.,  24190.,  28296.,  31656.,  35144.,  38760.,
      32072.,  35688.,  39432.,  43304.,  30022.,  32926.,  35926.,  39022.,
      24164.,  26228.,  28356.,  30548.,  14242.,  15338.,  16466.,  17626.,
      5826.,   6794.,   7794.,   8826.,   15460.,  17524.,  19652.,  21844.,
      29158.,  32446.,  35830.,  39310.,  47176.,  51816.,  56584.,  61480.,
      50952.,  55848.,  60872.,  66024.,  46102.,  49966.,  53926.,  57982.,
      36164.,  38868.,  41636.,  44468.,  20882.,  22298.,  23746.,  25226.,
      8626.,   9914.,   11234.,  12586.,  22340.,  25044.,  27812.,  30644.,
      41398.,  45646.,  49990.,  54430.,  66056.,  71976.,  78024.,  84200.,
      69832.,  76008.,  82312.,  88744.,  62182.,  67006.,  71926.,  76942.,
      48164.,  51508.,  54916.,  58388.,  27522.,  29258.,  31026.,  32826.,
      10821.,  11609.,  12413.,  13233.,  24762.,  26402.,  28074.,  29778.,
      41951.,  44507.,  47111.,  49763.,  62516.,  66052.,  69652.,  73316.,
      65428.,  69092.,  72820.,  76612.,  54839.,  57683.,  60575.,  63515.,
      40490.,  42450.,  44442.,  46466.,  22253.,  23265.,  24293.,  25337.,
      197.,    473.,    765.,    1073.,   1466.,   2082.,   2730.,   3410.,
      3935.,   4955.,   6023.,   7139.,   7732.,   9220.,   10772.,  12388.,
      12692.,  14308.,  15988.,  17732.,  12215.,  13523.,  14879.,  16283.,
      10026.,  10962.,  11930.,  12930.,  5997.,   6497.,   7013.,   7545.,
      5730.,   6570.,   7442.,   8346.,   14756.,  16564.,  18436.,  20372.,
      27334.,  30238.,  33238.,  36334.,  43720.,  47848.,  52104.,  56488.,
      55688.,  60072.,  64584.,  69224.,  48886.,  52366.,  55942.,  59614.,
      37508.,  39956.,  42468.,  45044.,  21298.,  22586.,  23906.,  25258.,
      18770.,  19930.,  21122.,  22346.,  42116.,  44564.,  47076.,  49652.,
      70294.,  74158.,  78118.,  82174.,  103560., 108968., 114504., 120168.,
      115528., 121192., 126984., 132904., 95686.,  100126., 104662., 109294.,
      69988.,  73076.,  76228.,  79444.,  38178.,  39786.,  41426.,  43098.,
      31810.,  33290.,  34802.,  36346.,  69476.,  72564.,  75716.,  78932.,
      113254., 118078., 122998., 128014., 163400., 170088., 176904., 183848.,
      175368., 182312., 189384., 196584., 142486., 147886., 153382., 158974.,
      102468., 106196., 109988., 113844., 55058.,  56986.,  58946.,  60938.,
      44850.,  46650.,  48482.,  50346.,  96836.,  100564., 104356., 108212.,
      156214., 161998., 167878., 173854., 223240., 231208., 239304., 247528.,
      235208., 243432., 251784., 260264., 189286., 195646., 202102., 208654.,
      134948., 139316., 143748., 148244., 71938.,  74186.,  76466.,  78778.,
      31493.,  32537.,  33597.,  34673.,  67130.,  69282.,  71466.,  73682.,
      107039., 110363., 113735., 117155., 151348., 155908., 160532., 165220.,
      158356., 163044., 167796., 172612., 126071., 129683., 133343., 137051.,
      89002.,  91474.,  93978.,  96514.,  47021.,  48289.,  49573.,  50873.,
      389.,    921.,    1469.,   2033.,   2874.,   4002.,   5162.,   6354.,
      7583.,   9371.,   11207.,  13091.,  14644.,  17156.,  19732.,  22372.,
      23700.,  26340.,  29044.,  31812.,  22007.,  24083.,  26207.,  28379.,
      17578.,  19026.,  20506.,  22018.,  10285.,  11041.,  11813.,  12601.,
      11234.,  12586.,  13970.,  15386.,  27812.,  30644.,  33540.,  36500.,
      49990.,  54430.,  58966.,  63598.,  78024.,  84200.,  90504.,  96936.,
      98184.,  104616., 111176., 117864., 83830.,  88846.,  93958.,  99166.,
      62852.,  66324.,  69860.,  73460.,  34994.,  36794.,  38626.,  40490.,
      34514.,  36186.,  37890.,  39626.,  75652.,  79124.,  82660.,  86260.,
      123670., 129070., 134566., 140158., 178824., 186280., 193864., 201576.,
      198984., 206696., 214536., 222504., 161350., 167326., 173398., 179566.,
      115812., 119924., 124100., 128340., 62114.,  64234.,  66386.,  68570.,
      57794.,  59786.,  61810.,  63866.,  123492., 127604., 131780., 136020.,
      197350., 203710., 210166., 216718., 279624., 288360., 297224., 306216.,
      299784., 308776., 317896., 327144., 238870., 245806., 252838., 259966.,
      168772., 173524., 178340., 183220., 89234.,  91674.,  94146.,  96650.,
      81074.,  83386.,  85730.,  88106.,  171332., 176084., 180900., 185780.,
      271030., 278350., 285766., 293278., 380424., 390440., 400584., 410856.,
      400584., 410856., 421256., 431784., 316390., 324286., 332278., 340366.,
      221732., 227124., 232580., 238100., 116354., 119114., 121906., 124730.,
      52165.,  53465.,  54781.,  56113.,  109498., 112162., 114858., 117586.,
      172127., 176219., 180359., 184547., 240180., 245764., 251412., 257124.,
      251284., 256996., 262772., 268612., 197303., 201683., 206111., 210587.,
      137514., 140498., 143514., 146562., 71789.,  73313.,  74853.,  76409.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x6x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,   303486.,   340494.,   378654.,   446824.,   497704.,
      550120.,   604072.,   676130.,   743570.,   812930.,   884210.,
      786050.,   857330.,   930530.,   1005650.,  895970.,   971090.,
      1048130.,  1127090.,  1005890.,  1084850.,  1165730.,  1248530.,
      941800.,   1008040.,  1075816.,  1145128.,  812238.,   864222.,
      917358.,   971646.,   776872.,   844648.,   913960.,   984808.,
      1209056.,  1303520.,  1400032.,  1498592.,  1734680.,  1857880.,
      1983640.,  2111960.,  1932440.,  2060760.,  2191640.,  2325080.,
      2130200.,  2263640.,  2399640.,  2538200.,  2327960.,  2466520.,
      2607640.,  2751320.,  2098400.,  2213344.,  2330336.,  2449376.,
      1754920.,  1844200.,  1935016.,  2027368.,  1700930.,  1810610.,
      1922210.,  2035730.,  2551000.,  2702360.,  2856280.,  3012760.,
      3551150.,  3746750.,  3945550.,  4147550.,  3862350.,  4064350.,
      4269550.,  4477950.,  4173550.,  4381950.,  4593550.,  4808350.,
      4484750.,  4699550.,  4917550.,  5138750.,  3949400.,  4126360.,
      4305880.,  4487960.,  3238370.,  3374930.,  3513410.,  3653810.,
      3071810.,  3212210.,  3354530.,  3498770.,  4460760.,  4653080.,
      4847960.,  5045400.,  6040750.,  6287550.,  6537550.,  6790750.,
      6351950.,  6605150.,  6861550.,  7121150.,  6663150.,  6922750.,
      7185550.,  7451550.,  6974350.,  7240350.,  7509550.,  7781950.,
      6023000.,  6240920.,  6461400.,  6684440.,  4855010.,  5022290.,
      5191490.,  5362610.,  4270120.,  4402408.,  4536232.,  4671592.,
      6038752.,  6219232.,  6401760.,  6586336.,  7986840.,  8217560.,
      8450840.,  8686680.,  8287000.,  8522840.,  8761240.,  9002200.,
      8587160.,  8828120.,  9071640.,  9317720.,  8887320.,  9133400.,
      9382040.,  9633240.,  7517920.,  7718880.,  7921888.,  8126944.,
      5948584.,  6102376.,  6257704.,  6414568.,  4684974.,  4799166.,
      4914510.,  5031006.,  6545512.,  6700840.,  6857704.,  7016104.,
      8560610.,  8758610.,  8958530.,  9160370.,  8824130.,  9025970.,
      9229730.,  9435410.,  9087650.,  9293330.,  9500930.,  9710450.,
      9351170.,  9560690.,  9772130.,  9985490.,  7826920.,  7997608.,
      8169832.,  8343592.,  6132750.,  6263070.,  6394542.,  6527166.,
      2763630.,  2860926.,  2959374.,  3058974.,  3938664.,  4071464.,
      4205800.,  4341672.,  5245730.,  5415570.,  5587330.,  5761010.,
      5355650.,  5529330.,  5704930.,  5882450.,  5465570.,  5643090.,
      5822530.,  6003890.,  5575490.,  5756850.,  5940130.,  6125330.,
      4761320.,  4909480.,  5059176.,  5210408.,  3799758.,  3913182.,
      4027758.,  4143486.,  4444840.,  4561768.,  4680232.,  4800232.,
      6230752.,  6390752.,  6552800.,  6716896.,  8175640.,  8380760.,
      8588440.,  8798680.,  8373400.,  8583640.,  8796440.,  9011800.,
      8571160.,  8786520.,  9004440.,  9224920.,  8768920.,  8989400.,
      9212440.,  9438040.,  7382240.,  7562720.,  7745248.,  7929824.,
      5816104.,  5954536.,  6094504.,  6236008.,  6295106.,  6441650.,
      6590114.,  6740498.,  8774872.,  8975384.,  9178456.,  9384088.,
      11453870., 11710910., 11971150., 12234590., 11765070., 12028510.,
      12295150., 12564990., 12076270., 12346110., 12619150., 12895390.,
      12387470., 12663710., 12943150., 13225790., 10369880., 10595992.,
      10824664., 11055896., 8127458.,  8300882.,  8476226.,  8653490.,
      4489538.,  4617650.,  4747682.,  4879634.,  6318296.,  6494232.,
      6672728.,  6853784.,  8321710.,  8548030.,  8777550.,  9010270.,
      8632910.,  8865630.,  9101550.,  9340670.,  8944110.,  9183230.,
      9425550.,  9671070.,  9255310.,  9500830.,  9749550.,  10001470.,
      7815000.,  8016536.,  8220632.,  8427288.,  6174434.,  6329426.,
      6486338.,  6645170.,  1585192.,  1668328.,  1753000.,  1839208.,
      2327776.,  2442720.,  2559712.,  2678752.,  3184280.,  3333080.,
      3484440.,  3638360.,  3484440.,  3638360.,  3794840.,  3953880.,
      3784600.,  3943640.,  4105240.,  4269400.,  4084760.,  4248920.,
      4415640.,  4584920.,  3544800.,  3680224.,  3817696.,  3957216.,
      2870440.,  2975080.,  3081256.,  3188968.,  2302638.,  2379966.,
      2458446.,  2538078.,  3270760.,  3376936.,  3484648.,  3593896.,
      4344290.,  4480850.,  4619330.,  4759730.,  4607810.,  4748210.,
      4890530.,  5034770.,  4871330.,  5015570.,  5161730.,  5309810.,
      5134850.,  5282930.,  5432930.,  5584850.,  4355560.,  4477096.,
      4600168.,  4724776.,  3455502.,  3548958.,  3643566.,  3739326.,
      2083182.,  2192766.,  2303502.,  2415390.,  3064168.,  3213352.,
      3364072.,  3516328.,  4193570.,  4383890.,  4576130.,  4770290.,
      4303490.,  4497650.,  4693730.,  4891730.,  4413410.,  4611410.,
      4811330.,  5013170.,  4523330.,  4725170.,  4928930.,  5134610.,
      3952360.,  4116904.,  4282984.,  4450600.,  3217614.,  3343326.,
      3470190.,  3598206.,  4180648.,  4346728.,  4514344.,  4683496.,
      6009568.,  6235104.,  6462688.,  6692320.,  8063000.,  8350040.,
      8639640.,  8931800.,  8260760.,  8552920.,  8847640.,  9144920.,
      8458520.,  8755800.,  9055640.,  9358040.,  8656280.,  8958680.,
      9263640.,  9571160.,  7423200.,  7669216.,  7917280.,  8167392.,
      5945128.,  6132712.,  6321832.,  6512488.,  6957122.,  7140530.,
      7325858.,  7513106.,  9755864.,  10005528., 10257752., 10512536.,
      12802990., 13121470., 13443150., 13768030., 13114190., 13439070.,
      13767150., 14098430., 13425390., 13756670., 14091150., 14428830.,
      13736590., 14074270., 14415150., 14759230., 11547480., 11822744.,
      12100568., 12380952., 9084386.,  9294674.,  9506882.,  9721010.,
      7117634.,  7282610.,  7449506.,  7618322.,  9920728.,  10145816.,
      10373464., 10603672., 12947630., 13235390., 13526350., 13820510.,
      13258830., 13552990., 13850350., 14150910., 13570030., 13870590.,
      14174350., 14481310., 13881230., 14188190., 14498350., 14811710.,
      11614040., 11864728., 12117976., 12373784., 9097442.,  9289298.,
      9483074.,  9678770.,  6236200.,  6368488.,  6502312.,  6637672.,
      8660192.,  8840672.,  9023200.,  9207776.,  11263640., 11494360.,
      11727640., 11963480., 11563800., 11799640., 12038040., 12279000.,
      11863960., 12104920., 12348440., 12594520., 12164120., 12410200.,
      12658840., 12910040., 10139360., 10340320., 10543328., 10748384.,
      7914664.,  8068456.,  8223784.,  8380648.,  4079790.,  4169406.,
      4260174.,  4352094.,  5673064.,  5795624.,  5919720.,  6045352.,
      7388130.,  7545170.,  7704130.,  7865010.,  7651650.,  7812530.,
      7975330.,  8140050.,  7915170.,  8079890.,  8246530.,  8415090.,
      8178690.,  8347250.,  8517730.,  8690130.,  6823400.,  6961320.,
      7100776.,  7241768.,  5330958.,  5436702.,  5543598.,  5651646.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x6x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    6136.,    9784.,
      13944.,   18616.,   12920.,   17592.,   22776.,   28472.,   18874.,
      23146.,   27802.,   32842.,   19388.,   22748.,   26364.,   30236.,
      13438.,   15374.,   17438.,   19630.,   1500.,    4092.,    6940.,
      10044.,   12856.,   19064.,   25784.,   33016.,   36116.,   46964.,
      58580.,   70964.,   73328.,   89840.,   107376.,  125936.,  103280.,
      121840.,  141424.,  162032.,  109652.,  125108.,  141332.,  158324.,
      95928.,   107256.,  119096.,  131448.,  60060.,   66236.,   72668.,
      79356.,   23580.,   28732.,   34140.,   39804.,   67256.,   78584.,
      90424.,   102776.,  133076.,  151604.,  170900.,  190964.,  223088.,
      249840.,  277616.,  306416.,  253040.,  281840.,  311664.,  342512.,
      237332.,  260468.,  284372.,  309044.,  191288.,  207736.,  224696.,
      242168.,  112860.,  121596.,  130588.,  139836.,  45660.,   53372.,
      61340.,   69564.,   121656.,  138104.,  155064.,  172536.,  230036.,
      256244.,  283220.,  310964.,  372848.,  409840.,  447856.,  486896.,
      402800.,  441840.,  481904.,  522992.,  365012.,  395828.,  427412.,
      459764.,  286648.,  308216.,  330296.,  352888.,  165660.,  176956.,
      188508.,  200316.,  67740.,   78012.,   88540.,   99324.,   176056.,
      197624.,  219704.,  242296.,  326996.,  360884.,  395540.,  430964.,
      522608.,  569840.,  618096.,  667376.,  552560.,  601840.,  652144.,
      703472.,  492692.,  531188.,  570452.,  610484.,  382008.,  408696.,
      435896.,  463608.,  218460.,  232316.,  246428.,  260796.,  85790.,
      92078.,   98494.,   105038.,  196476.,  209564.,  222908.,  236508.,
      333082.,  353482.,  374266.,  395434.,  496632.,  524856.,  553592.,
      582840.,  519800.,  549048.,  578808.,  609080.,  435898.,  458602.,
      481690.,  505162.,  321980.,  337628.,  353532.,  369692.,  177022.,
      185102.,  193310.,  201646.,  1310.,    3502.,    5822.,    8270.,
      11132.,   16028.,   21180.,   26588.,   30490.,   38602.,   47098.,
      55978.,   60408.,   72248.,   84600.,   97464.,   99960.,   112824.,
      126200.,  140088.,  96442.,   106858.,  117658.,  128842.,  79292.,
      86748.,   94460.,   102428.,  47486.,   51470.,   55582.,   59822.,
      45020.,   51708.,   58652.,   65852.,   116280.,  130680.,  145592.,
      161016.,  215828.,  238964.,  262868.,  287540.,  345712.,  378608.,
      412528.,  447472.,  441200.,  476144.,  512112.,  549104.,  387668.,
      415412.,  443924.,  473204.,  297656.,  317176.,  337208.,  357752.,
      169116.,  179388.,  189916.,  200700.,  149020.,  158268.,  167772.,
      177532.,  334520.,  354040.,  374072.,  394616.,  558548.,  589364.,
      620948.,  653300.,  823152.,  866288.,  910448.,  955632.,  918640.,
      963824.,  1010032., 1057264., 761108.,  796532.,  832724.,  869684.,
      556856.,  581496.,  606648.,  632312.,  303836.,  316668.,  329756.,
      343100.,  253020.,  264828.,  276892.,  289212.,  552760.,  577400.,
      602552.,  628216.,  901268.,  939764.,  979028.,  1019060., 1300592.,
      1353968., 1408368., 1463792., 1396080., 1451504., 1507952., 1565424.,
      1134548., 1177652., 1221524., 1266164., 816056.,  845816.,  876088.,
      906872.,  438556.,  453948.,  469596.,  485500.,  357020.,  371388.,
      386012.,  400892.,  771000.,  800760.,  831032.,  861816.,  1243988.,
      1290164., 1337108., 1384820., 1778032., 1841648., 1906288., 1971952.,
      1873520., 1939184., 2005872., 2073584., 1507988., 1558772., 1610324.,
      1662644., 1075256., 1110136., 1145528., 1181432., 573276.,  591228.,
      609436.,  627900.,  250910.,  259246.,  267710.,  276302.,  534908.,
      552092.,  569532.,  587228.,  853018.,  879562.,  906490.,  933802.,
      1206264., 1242680., 1279608., 1317048., 1262200., 1299640., 1337592.,
      1376056., 1004986., 1033834., 1063066., 1092682., 709564.,  729308.,
      749308.,  769564.,  374910.,  385038.,  395294.,  405678.,  2590.,
      6830.,    11198.,   15694.,   21884.,   30876.,   40124.,   49628.,
      58906.,   73162.,   87802.,   102826.,  114680.,  134712.,  155256.,
      176312.,  187000.,  208056.,  229624.,  251704.,  174010.,  190570.,
      207514.,  224842.,  139196.,  150748.,  162556.,  174620.,  81534.,
      87566.,   93726.,   100014.,  88540.,   99324.,   110364.,  121660.,
      219704.,  242296.,  265400.,  289016.,  395540.,  430964.,  467156.,
      504116.,  618096.,  667376.,  717680.,  769008.,  779120.,  830448.,
      882800.,  936176.,  665684.,  705716.,  746516.,  788084.,  499384.,
      527096.,  555320.,  584056.,  278172.,  292540.,  307164.,  322044.,
      274460.,  287804.,  301404.,  315260.,  601784.,  629496.,  657720.,
      686456.,  984020.,  1027124., 1070996., 1115636., 1423216., 1482736.,
      1543280., 1604848., 1584240., 1645808., 1708400., 1772016., 1284884.,
      1332596., 1381076., 1430324., 922424.,  955256.,  988600.,  1022456.,
      494812.,  511740.,  528924.,  546364.,  460380.,  476284.,  492444.,
      508860.,  983864.,  1016696., 1050040., 1083896., 1572500., 1623284.,
      1674836., 1727156., 2228336., 2298096., 2368880., 2440688., 2389360.,
      2461168., 2534000., 2607856., 1904084., 1959476., 2015636., 2072564.,
      1345464., 1383416., 1421880., 1460856., 711452.,  730940.,  750684.,
      770684.,  646300.,  664764.,  683484.,  702460.,  1365944., 1403896.,
      1442360., 1481336., 2160980., 2219444., 2278676., 2338676., 3033456.,
      3113456., 3194480., 3276528., 3194480., 3276528., 3359600., 3443696.,
      2523284., 2586356., 2650196., 2714804., 1768504., 1811576., 1855160.,
      1899256., 928092.,  950140.,  972444.,  995004.,  416030.,  426414.,
      436926.,  447566.,  873340.,  894620.,  916156.,  937948.,  1372954.,
      1405642., 1438714., 1472170., 1915896., 1960504., 2005624., 2051256.,
      2004600., 2050232., 2096376., 2143032., 1574074., 1609066., 1644442.,
      1680202., 1097148., 1120988., 1145084., 1169436., 572798.,  584974.,
      597278.,  609710.};
  const std::array<int, 4> in_shape = {{3, 6, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,   510.,   750.,   870.,   816.,   705.,   796.,   1220.,  1730.,
      1940.,  1756.,  1474.,  1610.,  2400.,  3325.,  3650.,  3230.,  2660.,
      2690.,  3900.,  5275.,  5600.,  4850.,  3920.,  3770.,  5400.,  7225.,
      7550.,  6470.,  5180.,  4588.,  6460.,  8510.,  8820.,  7444.,  5878.,
      4710.,  6570.,  8580.,  8850.,  7404.,  5799.,  2964.,  4290.,  5790.,
      5910.,  5100.,  4107.,  5584.,  7940.,  10550., 10760., 9148.,  7270.,
      9170.,  12900., 16975., 17300., 14570., 11480., 10250., 14400., 18925.,
      19250., 16190., 12740., 11330., 15900., 20875., 21200., 17810., 14000.,
      11896., 16540., 21530., 21840., 18196., 14194., 11136., 15390., 19920.,
      20190., 16728., 12981., 5610.,  8070.,  10830., 10950., 9384.,  7509.,
      10372., 14660., 19370., 19580., 16540., 13066., 16730., 23400., 30625.,
      30950., 25910., 20300., 17810., 24900., 32575., 32900., 27530., 21560.,
      18890., 26400., 34525., 34850., 29150., 22820., 19204., 26620., 34550.,
      34860., 28948., 22510., 17562., 24210., 31260., 31530., 26052., 20163.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    7.,    10.,   13.,   10.,   9.,    29.,   39.,   49.,
      59.,   40.,   34.,   95.,   116.,  137.,  158.,  100.,  79.,   200.,
      221.,  242.,  263.,  160.,  124.,  305.,  326.,  347.,  368.,  220.,
      143.,  331.,  349.,  367.,  385.,  220.,  105.,  236.,  247.,  258.,
      269.,  150.,  7.,    22.,   37.,   52.,   67.,   40.,   51.,   125.,
      159.,  193.,  227.,  130.,  142.,  329.,  386.,  443.,  500.,  280.,
      277.,  614.,  671.,  728.,  785.,  430.,  412.,  899.,  956.,  1013.,
      1070., 580.,  365.,  787.,  829.,  871.,  913.,  490.,  231.,  494.,
      517.,  540.,  563.,  300.,  13.,   40.,   67.,   94.,   121.,  70.,
      93.,   221.,  279.,  337.,  395.,  220.,  250.,  563.,  656.,  749.,
      842.,  460.,  475.,  1028., 1121., 1214., 1307., 700.,  700.,  1493.,
      1586., 1679., 1772., 940.,  587.,  1243., 1309., 1375., 1441., 760.,
      357.,  752.,  787.,  822.,  857.,  450.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,   3708.,   5505.,   6435.,   6084.,   5289.,   5888.,   9088.,
      12960.,  14600.,  13280.,  11192.,  12115.,  18140.,  25225.,  27775.,
      24660.,  20365.,  20575.,  29900.,  40525.,  43075.,  37380.,  30265.,
      29035.,  41660.,  55825.,  58375.,  50100.,  40165.,  35672.,  50272.,
      66280.,  68720.,  58048.,  45872.,  36807.,  51372.,  67125.,  69255.,
      57972.,  45429.,  22695.,  32940.,  44565.,  45495.,  39348.,  31749.,
      43184.,  61504.,  81840.,  83480.,  71072.,  56552.,  71335.,  100460.,
      132325., 134875., 113700., 89665.,  79795.,  112220., 147625., 150175.,
      126420., 99565.,  88255.,  123980., 162925., 165475., 139140., 109465.,
      93128.,  129568., 168760., 171200., 142720., 111392., 87459.,  120924.,
      156585., 158715., 131556., 102129., 43107.,  62172.,  83625.,  84555.,
      72612.,  58209.,  80480.,  113920., 150720., 152360., 128864., 101912.,
      130555., 182780., 239425., 241975., 202740., 158965., 139015., 194540.,
      254725., 257275., 215460., 168865., 147475., 206300., 270025., 272575.,
      228180., 178765., 150584., 208864., 271240., 273680., 227392., 176912.,
      138111., 190476., 246045., 248175., 205140., 158829.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    42.,    62.,    82.,    67.,   52.,   184.,   256.,
      328.,   400.,   280.,   221.,   646.,   802.,  958.,  1114.,  719.,
      551.,   1426.,  1582.,  1738.,  1894.,  1169., 881.,  2206.,  2362.,
      2518.,  2674.,  1619.,  1056.,  2464.,  2600., 2736., 2872.,  1652.,
      789.,   1782.,  1866.,  1950.,  2034.,  1139., 41.,   142.,   258.,
      374.,   490.,   295.,   364.,   904.,   1168., 1432., 1696.,  976.,
      1049.,  2446.,  2890.,  3334.,  3778.,  2123., 2099., 4666.,  5110.,
      5554.,  5998.,  3293.,  3149.,  6886.,  7330., 7774., 8218.,  4463.,
      2808.,  6064.,  6392.,  6720.,  7048.,  3788., 1785., 3822.,  4002.,
      4182.,  4362.,  2327.,  77.,    262.,   474.,  686.,  898.,   523.,
      676.,   1624.,  2080.,  2536.,  2992.,  1672., 1877., 4246.,  4978.,
      5710.,  6442.,  3527.,  3647.,  7906.,  8638., 9370., 10102., 5417.,
      5417.,  11566., 12298., 13030., 13762., 7307., 4560., 9664.,  10184.,
      10704., 11224., 5924.,  2781.,  5862.,  6138., 6414., 6690.,  3515.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,   28200.,   42090.,   49410.,   46920.,   40926.,   45208.,
      70048.,   100200.,  113160.,  103200.,  87160.,   93890.,   140920.,
      196350.,  216550.,  192600.,  159290.,  160850.,  234040.,  317550.,
      337750.,  293400.,  237770.,  227810.,  327160.,  438750.,  458950.,
      394200.,  316250.,  281272.,  396576.,  523080.,  542440.,  458400.,
      362392.,  290982.,  406248.,  530970.,  547890.,  458760.,  359598.,
      177510.,  258024.,  349530.,  356850.,  309000.,  249582.,  339544.,
      484000.,  644520.,  657480.,  560160.,  446008.,  562610.,  792760.,
      1044750., 1064950., 898200.,  708650.,  629570.,  885880.,  1165950.,
      1186150., 999000.,  787130.,  696530.,  979000.,  1287150., 1307350.,
      1099800., 865610.,  736888.,  1025568., 1336200., 1355560., 1130400.,
      882520.,  693174.,  958632.,  1241610., 1258530., 1043400., 810174.,
      337782.,  487848.,  656970.,  664290.,  571080.,  458238.,  633880.,
      897952.,  1188840., 1201800., 1017120., 804856.,  1031330., 1444600.,
      1893150., 1913350., 1603800., 1258010., 1098290., 1537720., 2014350.,
      2034550., 1704600., 1336490., 1165250., 1630840., 2135550., 2155750.,
      1805400., 1414970., 1192504., 1654560., 2149320., 2168680., 1802400.,
      1402648., 1095366., 1511016., 1952250., 1969170., 1628040., 1260750.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,   284.,   428.,    572.,    486.,   340.,   1288.,  1832.,
      2376.,  2920.,  2084.,  1570.,   4724.,   5924.,  7124.,  8324.,  5434.,
      4090.,  10724., 11924., 13124.,  14324.,  8914.,  6610.,  16724., 17924.,
      19124., 20324., 12394., 8100.,   18984.,  20040., 21096., 22152., 12788.,
      6110.,  13836., 14492., 15148.,  15804.,  8870.,  270.,   1004.,  1916.,
      2828.,  3740.,  2262.,  2740.,   6856.,   8936.,  11016., 13096., 7556.,
      8050.,  18836., 22340., 25844.,  29348.,  16522., 16330., 36356., 39860.,
      43364., 46868., 25762., 24610.,  53876.,  57380., 60884., 64388., 35002.,
      22020., 47592., 50184., 52776.,  55368.,  29780., 14030., 30060., 31484.,
      32908., 34332., 18326., 510.,    1868.,   3548.,  5228.,  6908.,  4038.,
      5140.,  12424., 16040., 19656.,  23272.,  13028., 14530., 32948., 38756.,
      44564., 50372., 27610., 28570.,  61988.,  67796., 73604., 79412., 42610.,
      42610., 91028., 96836., 102644., 108452., 57610., 35940., 76200., 80328.,
      84456., 88584., 46772., 21950.,  46284.,  48476., 50668., 52860., 27782.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,   1272.,   1668.,   2040.,   2505.,   3000.,   2955.,   3480.,
      2820.,   3264.,   2469.,   2820.,   2704.,   3184.,   4208.,   4880.,
      6040.,   6920.,   6840.,   7760.,   6256.,   7024.,   5296.,   5896.,
      5675.,   6440.,   8540.,   9600.,   11925.,  13300.,  13175.,  14600.,
      11740.,  12920.,  9725.,   10640.,  9815.,   10760.,  14300.,  15600.,
      19425.,  21100.,  20675.,  22400.,  17980.,  19400.,  14585.,  15680.,
      13955.,  15080.,  20060.,  21600.,  26925.,  28900.,  28175.,  30200.,
      24220.,  25880.,  19445.,  20720.,  17320.,  18352.,  24432.,  25840.,
      32240.,  34040.,  33440.,  35280.,  28272.,  29776.,  22360.,  23512.,
      17967.,  18840.,  25092.,  26280.,  32805.,  34320.,  33855.,  35400.,
      28356.,  29616.,  22233.,  23196.,  10839.,  11856.,  15780.,  17160.,
      21405.,  23160.,  21855.,  23640.,  18948.,  20400.,  15321.,  16428.,
      20848.,  22336.,  29744.,  31760.,  39640.,  42200.,  40440.,  43040.,
      34480.,  36592.,  27472.,  29080.,  34655.,  36680.,  48860.,  51600.,
      64425.,  67900.,  65675.,  69200.,  55420.,  58280.,  43745.,  45920.,
      38795.,  41000.,  54620.,  57600.,  71925.,  75700.,  73175.,  77000.,
      61660.,  64760.,  48605.,  50960.,  42935.,  45320.,  60380.,  63600.,
      79425.,  83500.,  80675.,  84800.,  67900.,  71240.,  53465.,  56000.,
      45544.,  47584.,  63408.,  66160.,  82640.,  86120.,  83840.,  87360.,
      69936.,  72784.,  54616.,  56776.,  42915.,  44544.,  59364.,  61560.,
      76905.,  79680.,  77955.,  80760.,  64644.,  66912.,  50205.,  51924.,
      20667.,  22440.,  29892.,  32280.,  40305.,  43320.,  40755.,  43800.,
      35076.,  37536.,  28173.,  30036.,  38992.,  41488.,  55280.,  58640.,
      73240.,  77480.,  74040.,  78320.,  62704.,  66160.,  49648.,  52264.,
      63635.,  66920.,  89180.,  93600.,  116925., 122500., 118175., 123800.,
      99100.,  103640., 77765.,  81200.,  67775.,  71240.,  94940.,  99600.,
      124425., 130300., 125675., 131600., 105340., 110120., 82625.,  86240.,
      71915.,  75560.,  100700., 105600., 131925., 138100., 133175., 139400.,
      111580., 116600., 87485.,  91280.,  73768.,  76816.,  102384., 106480.,
      133040., 138200., 134240., 139440., 111600., 115792., 86872.,  90040.,
      67863.,  70248.,  93636.,  96840.,  121005., 125040., 122055., 126120.,
      100932., 104208., 78177.,  80652.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   14.,   28.,   22.,   40.,   30.,   52.,
      27.,   40.,   16.,   36.,   68.,   116.,  100.,  156.,  132.,  196.,
      164.,  236.,  120.,  160.,  85.,   136.,  266.,  380.,  338.,  464.,
      410.,  548.,  482.,  632.,  319.,  400.,  235.,  316.,  626.,  800.,
      698.,  884.,  770.,  968.,  842.,  1052., 529.,  640.,  385.,  496.,
      986.,  1220., 1058., 1304., 1130., 1388., 1202., 1472., 739.,  880.,
      484.,  572.,  1140., 1324., 1204., 1396., 1268., 1468., 1332., 1540.,
      772.,  880.,  369.,  420.,  838.,  944.,  878.,  988.,  918.,  1032.,
      958.,  1076., 539.,  600.,  13.,   28.,   54.,   88.,   110.,  148.,
      166.,  208.,  222.,  268.,  135.,  160.,  160.,  204.,  404.,  500.,
      532.,  636.,  660.,  772.,  788.,  908.,  456.,  520.,  481.,  568.,
      1130., 1316., 1346., 1544., 1562., 1772., 1778., 2000., 1003., 1120.,
      991.,  1108., 2210., 2456., 2426., 2684., 2642., 2912., 2858., 3140.,
      1573., 1720., 1501., 1648., 3290., 3596., 3506., 3824., 3722., 4052.,
      3938., 4280., 2143., 2320., 1348., 1460., 2916., 3148., 3076., 3316.,
      3236., 3484., 3396., 3652., 1828., 1960., 861.,  924.,  1846., 1976.,
      1934., 2068., 2022., 2160., 2110., 2252., 1127., 1200., 25.,   52.,
      102.,  160.,  206.,  268.,  310.,  376.,  414.,  484.,  243.,  280.,
      304.,  372.,  740.,  884.,  964.,  1116., 1188., 1348., 1412., 1580.,
      792.,  880.,  877.,  1000., 1994., 2252., 2354., 2624., 2714., 2996.,
      3074., 3368., 1687., 1840., 1747., 1900., 3794., 4112., 4154., 4484.,
      4514., 4856., 4874., 5228., 2617., 2800., 2617., 2800., 5594., 5972.,
      5954., 6344., 6314., 6716., 6674., 7088., 3547., 3760., 2212., 2348.,
      4692., 4972., 4948., 5236., 5204., 5500., 5460., 5764., 2884., 3040.,
      1353., 1428., 2854., 3008., 2990., 3148., 3126., 3288., 3262., 3428.,
      1715., 1800.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,   9645.,    12636.,   15564.,   19095.,   22995.,   22635.,
      26775.,  21708.,   25212.,   19077.,   21849.,   20708.,   24500.,
      32368.,  37680.,   46620.,   53580.,   52940.,   60220.,   48560.,
      54640.,  41204.,   45956.,   43915.,   49975.,   66260.,   74660.,
      92725.,  103625.,  102625.,  113925.,  91620.,   100980.,  76015.,
      83275.,  76675.,   84175.,   111860.,  122180.,  152125.,  165425.,
      162025., 175725.,  141060.,  152340.,  114535.,  123235.,  109435.,
      118375., 157460.,  169700.,  211525.,  227225.,  221425.,  237525.,
      190500., 203700.,  153055.,  163195.,  136532.,  144740.,  192688.,
      203888., 254380.,  268700.,  263900.,  278540.,  223216.,  235184.,
      176612., 185780.,  142017.,  148965.,  198396.,  207852.,  259455.,
      271515., 267795.,  280095.,  224364.,  234396.,  175965.,  183633.,
      84705.,  92805.,   123516.,  134508.,  167775.,  181755.,  171315.,
      185535., 148716.,  160284.,  120381.,  129201.,  163844.,  175700.,
      233968., 250032.,  312060.,  332460.,  318380.,  339100.,  271664.,
      288496., 216596.,  229412.,  273235.,  289375.,  385460.,  407300.,
      508525., 536225.,  518425.,  546525.,  437700.,  460500.,  345655.,
      362995., 305995.,  323575.,  431060.,  454820.,  567925.,  598025.,
      577825., 608325.,  487140.,  511860.,  384175.,  402955.,  338755.,
      357775., 476660.,  502340.,  627325.,  659825.,  637225.,  670125.,
      536580., 563220.,  422695.,  442915.,  360308.,  376580.,  501808.,
      523760., 654220.,  681980.,  663740.,  691820.,  553840.,  576560.,
      432644., 449876.,  340089.,  353085.,  470556.,  488076.,  609735.,
      631875., 618075.,  640455.,  512652.,  530748.,  398229.,  411945.,
      161817., 175965.,  234396.,  253452.,  316455.,  340515.,  319995.,
      344295., 275724.,  295356.,  221685.,  236553.,  306980.,  326900.,
      435568., 462384.,  577500.,  611340.,  583820.,  617980.,  494768.,
      522352., 391988.,  412868.,  502555.,  528775.,  704660.,  739940.,
      924325., 968825.,  934225.,  979125.,  783780.,  820020.,  615295.,
      642715., 535315.,  562975.,  750260.,  787460.,  983725.,  1030625.,
      993625., 1040925., 833220.,  871380.,  653815.,  682675.,  568075.,
      597175., 795860.,  834980.,  1043125., 1092425., 1053025., 1102725.,
      882660., 922740.,  692335.,  722635.,  584084.,  608420.,  810928.,
      843632., 1054060., 1095260., 1063580., 1105100., 884464.,  917936.,
      688676., 713972.,  538161.,  557205.,  742716.,  768300.,  960015.,
      992235., 968355.,  1000815., 800940.,  827100.,  620493.,  640257.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   90.,    194.,   146.,   282.,   202.,
      370.,   193.,   293.,   94.,    246.,   460.,   828.,   700.,   1132.,
      940.,   1436.,  1180.,  1740.,  886.,   1198.,  587.,   983.,   1918.,
      2806.,  2470.,  3454.,  3022.,  4102.,  3574.,  4750.,  2399.,  3035.,
      1727.,  2363.,  4678.,  6046.,  5230.,  6694.,  5782.,  7342.,  6334.,
      7990.,  4019.,  4895.,  2867.,  3743.,  7438.,  9286.,  7990.,  9934.,
      8542.,  10582., 9094.,  11230., 5639.,  6755.,  3702.,  4398.,  8764.,
      10220., 9260.,  10780., 9756.,  11340., 10252., 11900., 5966.,  6822.,
      2853.,  3257.,  6498.,  7338.,  6810.,  7682.,  7122.,  8026.,  7434.,
      8370.,  4193.,  4677.,  77.,    193.,   370.,   634.,   810.,   1106.,
      1250.,  1578.,  1690.,  2050.,  1033.,  1229.,  1198.,  1542.,  3052.,
      3804.,  4060.,  4876.,  5068.,  5948.,  6076.,  7020.,  3526.,  4030.,
      3683.,  4367.,  8686.,  10150., 10390., 11950., 12094., 13750., 13798.,
      15550., 7799.,  8723.,  7703.,  8627.,  17206., 19150., 18910., 20950.,
      20614., 22750., 22318., 24550., 12299., 13463., 11723., 12887., 25726.,
      28150., 27430., 29950., 29134., 31750., 30838., 33550., 16799., 18203.,
      10566., 11454., 22876., 24716., 24140., 26044., 25404., 27372., 26668.,
      28700., 14366., 15414., 6765.,  7265.,  14514., 15546., 15210., 16274.,
      15906., 17002., 16602., 17730., 8873.,  9453.,  149.,   361.,   706.,
      1162.,  1530.,  2018.,  2354.,  2874.,  3178.,  3730.,  1873.,  2165.,
      2302.,  2838.,  5644.,  6780.,  7420.,  8620.,  9196.,  10460., 10972.,
      12300., 6166.,  6862.,  6779.,  7751.,  15454., 17494., 18310., 20446.,
      21166., 23398., 24022., 26350., 13199., 14411., 13679., 14891., 29734.,
      32254., 32590., 35206., 35446., 38158., 38302., 41110., 20579., 22031.,
      20579., 22031., 44014., 47014., 46870., 49966., 49726., 52918., 52582.,
      55870., 27959., 29651., 17430., 18510., 36988., 39212., 39020., 41308.,
      41052., 43404., 43084., 45500., 22766., 24006., 10677., 11273., 22530.,
      23754., 23610., 24866., 24690., 25978., 25770., 27090., 13553., 14229.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,   75054.,   98280.,   121512.,  149010.,  179970.,  177090.,
      209970.,  170280.,  198120.,  149934.,  171966.,  161992.,  192136.,
      253792.,  296032.,  366200.,  421560.,  416440.,  474360.,  382560.,
      430944.,  325000.,  362824.,  345410.,  393650.,  521880.,  588760.,
      731150.,  817950.,  809950.,  899950.,  723800.,  798360.,  601010.,
      658850.,  606050.,  665810.,  884760.,  967000.,  1203950., 1309950.,
      1282750., 1391950., 1117400., 1207320., 907730.,  977090.,  866690.,
      937970.,  1247640., 1345240., 1676750., 1801950., 1755550., 1883950.,
      1511000., 1616280., 1214450., 1295330., 1084168., 1149640., 1530464.,
      1619808., 2020920., 2135160., 2096760., 2213560., 1773920., 1869408.,
      1403848., 1477000., 1129278., 1184718., 1577832., 1653288., 2063730.,
      2159970., 2130210., 2228370., 1785000., 1865064., 1400142., 1461342.,
      669630.,  734286.,  977256.,  1065000., 1328370., 1439970., 1356450.,
      1469970., 1178280., 1270632., 954318.,  1024734., 1299016., 1393672.,
      1855840., 1984096., 2476280., 2639160., 2526520., 2691960., 2156640.,
      2291040., 1720072., 1822408., 2169890., 2298770., 3062040., 3236440.,
      4040750., 4261950., 4119550., 4343950., 3479000., 3661080., 2748050.,
      2886530., 2430530., 2570930., 3424920., 3614680., 4513550., 4753950.,
      4592350., 4835950., 3872600., 4070040., 3054770., 3204770., 2691170.,
      2843090., 3787800., 3992920., 4986350., 5245950., 5065150., 5327950.,
      4266200., 4479000., 3361490., 3523010., 2866312., 2996296., 3992672.,
      4168032., 5206200., 5427960., 5282040., 5506360., 4408160., 4589664.,
      3444040., 3581704., 2707806., 2811630., 3747048., 3887016., 4855890.,
      5032770., 4922370., 5101170., 4083240., 4227816., 3172206., 3281790.,
      1280478., 1393518., 1856232., 2008488., 2507730., 2699970., 2535810.,
      2729970., 2186280., 2343144., 1758702., 1877502., 2436040., 2595208.,
      3457888., 3672160., 4586360., 4856760., 4636600., 4909560., 3930720.,
      4151136., 3115144., 3281992., 3994370., 4203890., 5602200., 5884120.,
      7350350., 7705950., 7429150., 7787950., 6234200., 6523800., 4895090.,
      5114210., 4255010., 4476050., 5965080., 6262360., 7823150., 8197950.,
      7901950., 8279950., 6627800., 6932760., 5201810., 5432450., 4515650.,
      4748210., 6327960., 6640600., 8295950., 8689950., 8374750., 8771950.,
      7021400., 7341720., 5508530., 5750690., 4648456., 4842952., 6454880.,
      6716256., 8391480., 8720760., 8467320., 8799160., 7042400., 7309920.,
      5484232., 5686408., 4286334., 4438542., 5916264., 6120744., 7648050.,
      7905570., 7714530., 7973970., 6381480., 6590568., 4944270., 5102238.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    636.,    1436.,   1052.,   2108.,
      1468.,   2780.,   1454.,   2238.,   620.,    1804.,   3352.,   6232.,
      5208.,   8600.,   7064.,   10968.,  8920.,   13336.,  6796.,   9260.,
      4330.,   7450.,   14516.,  21524.,  18836.,  26612.,  23156.,  31700.,
      27476.,  36788.,  18586.,  23626.,  13210.,  18250.,  36116.,  46964.,
      40436.,  52052.,  44756.,  57140.,  49076.,  62228.,  31306.,  38266.,
      22090.,  29050.,  57716.,  72404.,  62036.,  77492.,  66356.,  82580.,
      70676.,  87668.,  44026.,  52906.,  28940.,  34476.,  68696.,  80280.,
      72600.,  84696.,  76504.,  89112.,  80408.,  93528.,  46892.,  53708.,
      22430.,  25646.,  51164.,  57852.,  53628.,  60572.,  56092.,  63292.,
      58556.,  66012.,  33070.,  36926.,  510.,    1422.,   2716.,   4796.,
      6204.,   8540.,   9692.,   12284.,  13180.,  16028.,  8078.,   9630.,
      9260.,   11980.,  23704.,  29656.,  31704.,  38168.,  39704.,  46680.,
      47704.,  55192.,  27724.,  31724.,  28810.,  34234.,  68084.,  79700.,
      81620.,  94004.,  95156.,  108308., 108692., 122612., 61498.,  68842.,
      60730.,  68074.,  135764., 151220., 149300., 165524., 162836., 179828.,
      176372., 194132., 97258.,  106522., 92650.,  101914., 203444., 222740.,
      216980., 237044., 230516., 251348., 244052., 265652., 133018., 144202.,
      83660.,  90732.,  181208., 195864., 191256., 206424., 201304., 216984.,
      211352., 227544., 113900., 122252., 53630.,  57614.,  115100., 123324.,
      120636., 129116., 126172., 134908., 131708., 140700., 70414.,  75038.,
      990.,    2670.,   5212.,   8828.,   11772.,  15644.,  18332.,  22460.,
      24892.,  29276.,  14702.,  17022.,  17900.,  22156.,  44056.,  53080.,
      58200.,  67736.,  72344.,  82392.,  86488.,  97048.,  48652.,  54188.,
      53290.,  61018.,  121652., 137876., 144404., 161396., 167156., 184916.,
      189908., 208436., 104410., 114058., 108250., 117898., 235412., 255476.,
      258164., 278996., 280916., 302516., 303668., 326036., 163210., 174778.,
      163210., 174778., 349172., 373076., 371924., 396596., 394676., 420116.,
      417428., 443636., 222010., 235498., 138380., 146988., 293720., 311448.,
      309912., 328152., 326104., 344856., 342296., 361560., 180908., 190796.,
      84830.,  89582.,  179036., 188796., 187644., 197660., 196252., 206524.,
      204860., 215388., 107758., 113150.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      53615.,  55820.,  58055.,  60320.,  77220.,  80240.,  83300.,  86400.,
      103825., 107700., 111625., 115600., 108725., 112700., 116725., 120800.,
      93620.,  96880.,  100180., 103520., 75275.,  77780.,  80315.,  82880.,
      67252.,  69280.,  71332.,  73408.,  94960.,  97728.,  100528., 103360.,
      125420., 128960., 132540., 136160., 130140., 133760., 137420., 141120.,
      110128., 113088., 116080., 119104., 87172.,  89440.,  91732.,  94048.,
      70149.,  71868.,  73605.,  75360.,  98028.,  100368., 102732., 105120.,
      128235., 131220., 134235., 137280., 132375., 135420., 138495., 141600.,
      110940., 113424., 115932., 118464., 87033.,  88932.,  90849.,  92784.,
      41349.,  43356.,  45381.,  47424.,  60396.,  63120.,  65868.,  68640.,
      82155.,  85620.,  89115.,  92640.,  83895.,  87420.,  90975.,  94560.,
      72924.,  75792.,  78684.,  81600.,  59097.,  61284.,  63489.,  65712.,
      80452.,  83392.,  86356.,  89344.,  114992., 118976., 122992., 127040.,
      153500., 158560., 163660., 168800., 156620., 161760., 166940., 172160.,
      133744., 137920., 142128., 146368., 106708., 109888., 113092., 116320.,
      134615., 138620., 142655., 146720., 190020., 195440., 200900., 206400.,
      250825., 257700., 264625., 271600., 255725., 262700., 269725., 276800.,
      216020., 221680., 227380., 233120., 170675., 174980., 179315., 183680.,
      150815., 155180., 159575., 164000., 212580., 218480., 224420., 230400.,
      280225., 287700., 295225., 302800., 285125., 292700., 300325., 308000.,
      240500., 246640., 252820., 259040., 189755., 194420., 199115., 203840.,
      167015., 171740., 176495., 181280., 235140., 241520., 247940., 254400.,
      309625., 317700., 325825., 334000., 314525., 322700., 330925., 339200.,
      264980., 271600., 278260., 284960., 208835., 213860., 218915., 224000.,
      178132., 182176., 186244., 190336., 248176., 253632., 259120., 264640.,
      323660., 330560., 337500., 344480., 328380., 335360., 342380., 349440.,
      274096., 279744., 285424., 291136., 214180., 218464., 222772., 227104.,
      168429., 171660., 174909., 178176., 233100., 237456., 241836., 246240.,
      302115., 307620., 313155., 318720., 306255., 311820., 317415., 323040.,
      254076., 258576., 263100., 267648., 197409., 200820., 204249., 207696.,
      79149.,  82668.,  86205.,  89760.,  114828., 119568., 124332., 129120.,
      155235., 161220., 167235., 173280., 156975., 163020., 169095., 175200.,
      135420., 140304., 145212., 150144., 108993., 112692., 116409., 120144.,
      151012., 155968., 160948., 165952., 214448., 221120., 227824., 234560.,
      284540., 292960., 301420., 309920., 287660., 296160., 304700., 313280.,
      243952., 250816., 257712., 264640., 193396., 198592., 203812., 209056.,
      248015., 254540., 261095., 267680., 347940., 356720., 365540., 374400.,
      456625., 467700., 478825., 490000., 461525., 472700., 483925., 495200.,
      387380., 396400., 405460., 414560., 304235., 311060., 317915., 324800.,
      264215., 271100., 278015., 284960., 370500., 379760., 389060., 398400.,
      486025., 497700., 509425., 521200., 490925., 502700., 514525., 526400.,
      411860., 421360., 430900., 440480., 323315., 330500., 337715., 344960.,
      280415., 287660., 294935., 302240., 393060., 402800., 412580., 422400.,
      515425., 527700., 540025., 552400., 520325., 532700., 545125., 557600.,
      436340., 446320., 456340., 466400., 342395., 349940., 357515., 365120.,
      289012., 295072., 301156., 307264., 401392., 409536., 417712., 425920.,
      521900., 532160., 542460., 552800., 526620., 536960., 547340., 557760.,
      438064., 446400., 454768., 463168., 341188., 347488., 353812., 360160.,
      266709., 271452., 276213., 280992., 368172., 374544., 380940., 387360.,
      475995., 484020., 492075., 500160., 480135., 488220., 496335., 504480.,
      397212., 403728., 410268., 416832., 307785., 312708., 317649., 322608.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    34.,
      56.,    82.,    112.,   58.,    88.,    122.,   160.,   82.,    120.,
      162.,   208.,   85.,    108.,   133.,   160.,   30.,    64.,    102.,
      144.,   188.,   272.,   364.,   464.,   300.,   400.,   508.,   624.,
      412.,   528.,   652.,   784.,   524.,   656.,   796.,   944.,   406.,
      480.,   558.,   640.,   247.,   340.,   439.,   544.,   854.,   1064.,
      1286.,  1520.,  1118.,  1352.,  1598.,  1856.,  1382.,  1640.,  1910.,
      2192.,  1646.,  1928.,  2222.,  2528.,  1123.,  1276.,  1435.,  1600.,
      787.,   940.,   1099.,  1264.,  2174.,  2504.,  2846.,  3200.,  2438.,
      2792.,  3158.,  3536.,  2702.,  3080.,  3470.,  3872.,  2966.,  3368.,
      3782.,  4208.,  1903.,  2116.,  2335.,  2560.,  1327.,  1540.,  1759.,
      1984.,  3494.,  3944.,  4406.,  4880.,  3758.,  4232.,  4718.,  5216.,
      4022.,  4520.,  5030.,  5552.,  4286.,  4808.,  5342.,  5888.,  2683.,
      2956.,  3235.,  3520.,  1766.,  1936.,  2110.,  2288.,  4204.,  4560.,
      4924.,  5296.,  4444.,  4816.,  5196.,  5584.,  4684.,  5072.,  5468.,
      5872.,  4924.,  5328.,  5740.,  6160.,  2878.,  3088.,  3302.,  3520.,
      1377.,  1476.,  1577.,  1680.,  3146.,  3352.,  3562.,  3776.,  3298.,
      3512.,  3730.,  3952.,  3450.,  3672.,  3898.,  4128.,  3602.,  3832.,
      4066.,  4304.,  2037.,  2156.,  2277.,  2400.,  25.,    52.,    81.,
      112.,   154.,   216.,   282.,   352.,   370.,   440.,   514.,   592.,
      586.,   664.,   746.,   832.,   802.,   888.,   978.,   1072.,  493.,
      540.,   589.,   640.,   558.,   640.,   726.,   816.,   1436.,  1616.,
      1804.,  2000.,  1932.,  2128.,  2332.,  2544.,  2428.,  2640.,  2860.,
      3088.,  2924.,  3152.,  3388.,  3632.,  1702.,  1824.,  1950.,  2080.,
      1759.,  1924.,  2095.,  2272.,  4166.,  4520.,  4886.,  5264.,  5006.,
      5384.,  5774.,  6176.,  5846.,  6248.,  6662.,  7088.,  6686.,  7112.,
      7550.,  8000.,  3787.,  4012.,  4243.,  4480.,  3739.,  3964.,  4195.,
      4432.,  8366.,  8840.,  9326.,  9824.,  9206.,  9704.,  10214., 10736.,
      10046., 10568., 11102., 11648., 10886., 11432., 11990., 12560., 6007.,
      6292.,  6583.,  6880.,  5719.,  6004.,  6295.,  6592.,  12566., 13160.,
      13766., 14384., 13406., 14024., 14654., 15296., 14246., 14888., 15542.,
      16208., 15086., 15752., 16430., 17120., 8227.,  8572.,  8923.,  9280.,
      5174.,  5392.,  5614.,  5840.,  11212., 11664., 12124., 12592., 11836.,
      12304., 12780., 13264., 12460., 12944., 13436., 13936., 13084., 13584.,
      14092., 14608., 7054.,  7312.,  7574.,  7840.,  3321.,  3444.,  3569.,
      3696.,  7130.,  7384.,  7642.,  7904.,  7474.,  7736.,  8002.,  8272.,
      7818.,  8088.,  8362.,  8640.,  8162.,  8440.,  8722.,  9008.,  4365.,
      4508.,  4653.,  4800.,  49.,    100.,   153.,   208.,   298.,   408.,
      522.,   640.,   706.,   824.,   946.,   1072.,  1114.,  1240.,  1370.,
      1504.,  1522.,  1656.,  1794.,  1936.,  901.,   972.,   1045.,  1120.,
      1086.,  1216.,  1350.,  1488.,  2684.,  2960.,  3244.,  3536.,  3564.,
      3856.,  4156.,  4464.,  4444.,  4752.,  5068.,  5392.,  5324.,  5648.,
      5980.,  6320.,  2998.,  3168.,  3342.,  3520.,  3271.,  3508.,  3751.,
      4000.,  7478.,  7976.,  8486.,  9008.,  8894.,  9416.,  9950.,  10496.,
      10310., 10856., 11414., 11984., 11726., 12296., 12878., 13472., 6451.,
      6748.,  7051.,  7360.,  6691.,  6988.,  7291.,  7600.,  14558., 15176.,
      15806., 16448., 15974., 16616., 17270., 17936., 17390., 18056., 18734.,
      19424., 18806., 19496., 20198., 20912., 10111., 10468., 10831., 11200.,
      10111., 10468., 10831., 11200., 21638., 22376., 23126., 23888., 23054.,
      23816., 24590., 25376., 24470., 25256., 26054., 26864., 25886., 26696.,
      27518., 28352., 13771., 14188., 14611., 15040., 8582.,  8848.,  9118.,
      9392.,  18220., 18768., 19324., 19888., 19228., 19792., 20364., 20944.,
      20236., 20816., 21404., 22000., 21244., 21840., 22444., 23056., 11230.,
      11536., 11846., 12160., 5265.,  5412.,  5561.,  5712.,  11114., 11416.,
      11722., 12032., 11650., 11960., 12274., 12592., 12186., 12504., 12826.,
      13152., 12722., 13048., 13378., 13712., 6693.,  6860.,  7029.,  7200.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,   31353.,   35421.,   39633.,   46332.,   51948.,   57756.,
      63756.,   70755.,   78255.,   85995.,   93975.,   84555.,   92535.,
      100755.,  109215.,  81756.,   88524.,   95484.,   102636.,  72285.,
      77649.,   83157.,   88809.,   77324.,   84668.,   92204.,   99932.,
      121744.,  132048.,  142608.,  153424.,  176340.,  189860.,  203700.,
      217860.,  201140.,  215300.,  229780.,  244580.,  185360.,  197200.,
      209296.,  221648.,  157868.,  167132.,  176588.,  186236.,  166795.,
      178615.,  190675.,  202975.,  252740.,  269140.,  285860.,  302900.,
      354925.,  376225.,  397925.,  420025.,  393925.,  416025.,  438525.,
      461425.,  352740.,  371060.,  389700.,  408660.,  293395.,  307615.,
      322075.,  336775.,  295675.,  310375.,  325315.,  340495.,  432260.,
      452500.,  473060.,  493940.,  588925.,  615025.,  641525.,  668425.,
      627925.,  654825.,  682125.,  709825.,  547620.,  569780.,  592260.,
      615060.,  445315.,  462415.,  479755.,  497335.,  424555.,  442135.,
      459955.,  478015.,  611780.,  635860.,  660260.,  684980.,  822925.,
      853825.,  885125.,  916825.,  861925.,  893625.,  925725.,  958225.,
      742500.,  768500.,  794820.,  821460.,  597235.,  617215.,  637435.,
      657895.,  533996.,  550172.,  566540.,  583100.,  754192.,  776272.,
      798608.,  821200.,  996340.,  1024580., 1053140., 1082020., 1033940.,
      1062820., 1092020., 1121540., 875152.,  898768.,  922640.,  946768.,
      692876.,  710972.,  729260.,  747740.,  557781.,  571497.,  585357.,
      599361.,  779580.,  798252.,  817116.,  836172.,  1019955., 1043775.,
      1067835., 1092135., 1052955., 1077255., 1101795., 1126575., 882588.,
      902412.,  922428.,  942636.,  692493.,  707649.,  722949.,  738393.,
      326805.,  342825.,  358989.,  375297.,  477756.,  499500.,  521436.,
      543564.,  650355.,  678015.,  705915.,  734055.,  664155.,  692295.,
      720675.,  749295.,  577692.,  600588.,  623676.,  646956.,  468429.,
      485889.,  503493.,  521241.,  637772.,  661244.,  684908.,  708764.,
      912016.,  943824.,  975888.,  1008208., 1217940., 1258340., 1299060.,
      1340100., 1242740., 1283780., 1325140., 1366820., 1061648., 1094992.,
      1128592., 1162448., 847340.,  872732.,  898316.,  924092.,  1068955.,
      1100935., 1133155., 1165615., 1509380., 1552660., 1596260., 1640180.,
      1992925., 2047825., 2103125., 2158825., 2031925., 2087625., 2143725.,
      2200225., 1716900., 1762100., 1807620., 1853460., 1356835., 1391215.,
      1425835., 1460695., 1197835., 1232695., 1267795., 1303135., 1688900.,
      1736020., 1783460., 1831220., 2226925., 2286625., 2346725., 2407225.,
      2265925., 2326425., 2387325., 2448625., 1911780., 1960820., 2010180.,
      2059860., 1508755., 1546015., 1583515., 1621255., 1326715., 1364455.,
      1402435., 1440655., 1868420., 1919380., 1970660., 2022260., 2460925.,
      2525425., 2590325., 2655625., 2499925., 2565225., 2630925., 2697025.,
      2106660., 2159540., 2212740., 2266260., 1660675., 1700815., 1741195.,
      1781815., 1417004., 1449308., 1481804., 1514492., 1974544., 2018128.,
      2061968., 2106064., 2575540., 2630660., 2686100., 2741860., 2613140.,
      2668900., 2724980., 2781380., 2181520., 2226640., 2272016., 2317648.,
      1704908., 1739132., 1773548., 1808156., 1340997., 1366809., 1392765.,
      1418865., 1856124., 1890924., 1925916., 1961100., 2405955., 2449935.,
      2494155., 2538615., 2438955., 2483415., 2528115., 2573055., 2023644.,
      2059596., 2095740., 2132076., 1572477., 1599729., 1627125., 1654665.,
      626181.,  654297.,  682557.,  710961.,  909180.,  947052.,  985116.,
      1023372., 1229955., 1277775., 1325835., 1374135., 1243755., 1292055.,
      1340595., 1389375., 1073628., 1112652., 1151868., 1191276., 864573.,
      894129.,  923829.,  953673.,  1198220., 1237820., 1277612., 1317596.,
      1702288., 1755600., 1809168., 1862992., 2259540., 2326820., 2394420.,
      2462340., 2284340., 2352260., 2420500., 2489060., 1937936., 1992784.,
      2047888., 2103248., 1536812., 1578332., 1620044., 1661948., 1971115.,
      2023255., 2075635., 2128255., 2766020., 2836180., 2906660., 2977460.,
      3630925., 3719425., 3808325., 3897625., 3669925., 3759225., 3848925.,
      3939025., 3081060., 3153140., 3225540., 3298260., 2420275., 2474815.,
      2529595., 2584615., 2099995., 2155015., 2210275., 2265775., 2945540.,
      3019540., 3093860., 3168500., 3864925., 3958225., 4051925., 4146025.,
      3903925., 3998025., 4092525., 4187425., 3275940., 3351860., 3428100.,
      3504660., 2572195., 2629615., 2687275., 2745175., 2228875., 2286775.,
      2344915., 2403295., 3125060., 3202900., 3281060., 3359540., 4098925.,
      4197025., 4295525., 4394425., 4137925., 4236825., 4336125., 4435825.,
      3470820., 3550580., 3630660., 3711060., 2724115., 2784415., 2844955.,
      2905735., 2300012., 2348444., 2397068., 2445884., 3194896., 3259984.,
      3325328., 3390928., 4154740., 4236740., 4319060., 4401700., 4192340.,
      4274980., 4357940., 4441220., 3487888., 3554512., 3621392., 3688528.,
      2716940., 2767292., 2817836., 2868572., 2124213., 2162121., 2200173.,
      2238369., 2932668., 2983596., 3034716., 3086028., 3791955., 3856095.,
      3920475., 3985095., 3824955., 3889575., 3954435., 4019535., 3164700.,
      3216780., 3269052., 3321516., 2452461., 2491809., 2531301., 2570937.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      234.,    402.,    602.,    834.,    410.,    642.,    906.,    1202.,
      586.,    882.,    1210.,   1570.,   637.,    817.,    1013.,   1225.,
      178.,    442.,    738.,    1066.,   1348.,   2004.,   2724.,   3508.,
      2212.,   2996.,   3844.,   4756.,   3076.,   3988.,   4964.,   6004.,
      3940.,   4980.,   6084.,   7252.,   3106.,   3690.,   4306.,   4954.,
      1799.,   2531.,   3311.,   4139.,   6430.,   8086.,   9838.,   11686.,
      8494.,   10342.,  12286.,  14326.,  10558.,  12598.,  14734.,  16966.,
      12622.,  14854.,  17182.,  19606.,  8687.,   9899.,   11159.,  12467.,
      5999.,   7211.,   8471.,   9779.,   16750.,  19366.,  22078.,  24886.,
      18814.,  21622.,  24526.,  27526.,  20878.,  23878.,  26974.,  30166.,
      22942.,  26134.,  29422.,  32806.,  14807.,  16499.,  18239.,  20027.,
      10199.,  11891.,  13631.,  15419.,  27070.,  30646.,  34318.,  38086.,
      29134.,  32902.,  36766.,  40726.,  31198.,  35158.,  39214.,  43366.,
      33262.,  37414.,  41662.,  46006.,  20927.,  23099.,  25319.,  27587.,
      13794.,  15146.,  16530.,  17946.,  32932.,  35764.,  38660.,  41620.,
      34820.,  37780.,  40804.,  43892.,  36708.,  39796.,  42948.,  46164.,
      38596.,  41812.,  45092.,  48436.,  22610.,  24282.,  25986.,  27722.,
      10821.,  11609.,  12413.,  13233.,  24762.,  26402.,  28074.,  29778.,
      25962.,  27666.,  29402.,  31170.,  27162.,  28930.,  30730.,  32562.,
      28362.,  30194.,  32058.,  33954.,  16061.,  17009.,  17973.,  18953.,
      149.,    361.,    589.,    833.,    1114.,   1602.,   2122.,   2674.,
      2826.,   3378.,   3962.,   4578.,   4538.,   5154.,   5802.,   6482.,
      6250.,   6930.,   7642.,   8386.,   3853.,   4225.,   4613.,   5017.,
      4306.,   4954.,   5634.,   6346.,   11140.,  12564.,  14052.,  15604.,
      15076.,  16628.,  18244.,  19924.,  19012.,  20692.,  22436.,  24244.,
      22948.,  24756.,  26628.,  28564.,  13378.,  14346.,  15346.,  16378.,
      13751.,  15059.,  16415.,  17819.,  32638.,  35446.,  38350.,  41350.,
      39310.,  42310.,  45406.,  48598.,  45982.,  49174.,  52462.,  55846.,
      52654.,  56038.,  59518.,  63094.,  29855.,  31643.,  33479.,  35363.,
      29471.,  31259.,  33095.,  34979.,  65998.,  69766.,  73630.,  77590.,
      72670.,  76630.,  80686.,  84838.,  79342.,  83494.,  87742.,  92086.,
      86014.,  90358.,  94798.,  99334.,  47495.,  49763.,  52079.,  54443.,
      45191.,  47459.,  49775.,  52139.,  99358.,  104086., 108910., 113830.,
      106030., 110950., 115966., 121078., 112702., 117814., 123022., 128326.,
      119374., 124678., 130078., 135574., 65135.,  67883.,  70679.,  73523.,
      40962.,  42698.,  44466.,  46266.,  88804.,  92404.,  96068.,  99796.,
      93764.,  97492.,  101284., 105140., 98724.,  102580., 106500., 110484.,
      103684., 107668., 111716., 115828., 55922.,  57978.,  60066.,  62186.,
      26325.,  27305.,  28301.,  29313.,  56538.,  58562.,  60618.,  62706.,
      59274.,  61362.,  63482.,  65634.,  62010.,  64162.,  66346.,  68562.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.,
      293.,    697.,    1117.,   1553.,   2170.,   3042.,   3946.,   4882.,
      5418.,   6354.,   7322.,   8322.,   8666.,   9666.,   10698.,  11762.,
      11914.,  12978.,  14074.,  15202.,  7069.,   7633.,   8213.,   8809.,
      8434.,   9466.,   10530.,  11626.,  20932.,  23124.,  25380.,  27700.,
      27940.,  30260.,  32644.,  35092.,  34948.,  37396.,  39908.,  42484.,
      41956.,  44532.,  47172.,  49876.,  23650.,  25002.,  26386.,  27802.,
      25703.,  27587.,  29519.,  31499.,  58846.,  62806.,  66862.,  71014.,
      70126.,  74278.,  78526.,  82870.,  81406.,  85750.,  90190.,  94726.,
      92686.,  97222.,  101854., 106582., 51023.,  53387.,  55799.,  58259.,
      52943.,  55307.,  57719.,  60179.,  115246., 120166., 125182., 130294.,
      126526., 131638., 136846., 142150., 137806., 143110., 148510., 154006.,
      149086., 154582., 160174., 165862., 80183.,  83027.,  85919.,  88859.,
      80183.,  83027.,  85919.,  88859.,  171646., 177526., 183502., 189574.,
      182926., 188998., 195166., 201430., 194206., 200470., 206830., 213286.,
      205486., 211942., 218494., 225142., 109343., 112667., 116039., 119459.,
      68130.,  70250.,  72402.,  74586.,  144676., 149044., 153476., 157972.,
      152708., 157204., 161764., 166388., 160740., 165364., 170052., 174804.,
      168772., 173524., 178340., 183220., 89234.,  91674.,  94146.,  96650.,
      41829.,  43001.,  44189.,  45393.,  88314.,  90722.,  93162.,  95634.,
      92586.,  95058.,  97562.,  100098., 96858.,  99394.,  101962., 104562.,
      101130., 103730., 106362., 109026., 53213.,  54545.,  55893.,  57257.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,   246846.,   279246.,   312798.,   365160.,   409896.,
      456168.,   503976.,   558690.,   618450.,   680130.,   743730.,
      668610.,   732210.,   797730.,   865170.,   647400.,   701352.,
      756840.,   813864.,   573006.,   615774.,   659694.,   704766.,
      611368.,   669928.,   730024.,   791656.,   963808.,   1045984.,
      1130208.,  1216480.,  1397400.,  1505240.,  1615640.,  1728600.,
      1595160.,  1708120.,  1823640.,  1941720.,  1471200.,  1565664.,
      1662176.,  1760736.,  1253800.,  1327720.,  1403176.,  1480168.,
      1322690.,  1417010.,  1513250.,  1611410.,  2005720.,  2136600.,
      2270040.,  2406040.,  2818350.,  2988350.,  3161550.,  3337950.,
      3129550.,  3305950.,  3485550.,  3668350.,  2803800.,  2950040.,
      3098840.,  3250200.,  2333090.,  2446610.,  2562050.,  2679410.,
      2350850.,  2468210.,  2587490.,  2708690.,  3438040.,  3599640.,
      3763800.,  3930520.,  4685550.,  4893950.,  5105550.,  5320350.,
      4996750.,  5211550.,  5429550.,  5650750.,  4359000.,  4535960.,
      4715480.,  4897560.,  3545570.,  3682130.,  3820610.,  3961010.,
      3379010.,  3519410.,  3661730.,  3805970.,  4870360.,  5062680.,
      5257560.,  5455000.,  6552750.,  6799550.,  7049550.,  7302750.,
      6863950.,  7117150.,  7373550.,  7633150.,  5914200.,  6121880.,
      6332120.,  6544920.,  4758050.,  4917650.,  5079170.,  5242610.,
      4255912.,  4385128.,  4515880.,  4648168.,  6011616.,  6188000.,
      6366432.,  6546912.,  7942680.,  8168280.,  8396440.,  8627160.,
      8242840.,  8473560.,  8706840.,  8942680.,  6977760.,  7166432.,
      7357152.,  7549920.,  5525032.,  5669608.,  5815720.,  5963368.,
      4448622.,  4558206.,  4668942.,  4780830.,  6218088.,  6367272.,
      6517992.,  6670248.,  8135970.,  8326290.,  8518530.,  8712690.,
      8399490.,  8593650.,  8789730.,  8987730.,  7041000.,  7199400.,
      7359336.,  7520808.,  5524878.,  5645982.,  5768238.,  5891646.,
      2598510.,  2726526.,  2855694.,  2986014.,  3800424.,  3974184.,
      4149480.,  4326312.,  5175330.,  5396370.,  5619330.,  5844210.,
      5285250.,  5510130.,  5736930.,  5965650.,  4598760.,  4781736.,
      4966248.,  5152296.,  3730062.,  3869598.,  4010286.,  4152126.,
      5078824.,  5266408.,  5455528.,  5646184.,  7264480.,  7518688.,
      7774944.,  8033248.,  9693080.,  9999576.,  10308632., 10620248.,
      9815064.,  10110296., 10408088., 10708440., 8242912.,  8476640.,
      8712416.,  8950240.,  6405288.,  6575464.,  6747176.,  6920424.,
      8292482.,  8498930.,  8707298.,  8917586.,  11597784., 11878168.,
      12161112., 12446616., 14844270., 15184766., 15528462., 15875358.,
      14752014., 15082526., 15416238., 15753150., 12121432., 12384408.,
      12649944., 12918040., 9196386.,  9389266.,  9584066.,  9780786.,
      8110274.,  8290610.,  8472866.,  8657042.,  11285208., 11530776.,
      11778904., 12029592., 14038830., 14335806., 14635982., 14939358.,
      13618894., 13905886., 14196078., 14489470., 11014232., 11242392.,
      11473112., 11706392., 8149922.,  8316690.,  8485378.,  8655986.,
      6945026.,  7099250.,  7255394.,  7413458.,  9661912.,  9872664.,
      10085976., 10301848., 11594990., 11848446., 12105102., 12364958.,
      10847374., 11090846., 11337518., 11587390., 8596312.,  8789656.,
      8985560.,  9184024.,  6120418.,  6261074.,  6403650.,  6548146.,
      4723624.,  4834408.,  4946728.,  5060584.,  6586080.,  6737888.,
      6891744.,  7047648.,  7278360.,  7456856.,  7637912.,  7821528.,
      6192024.,  6359256.,  6529048.,  6701400.,  4615392.,  4746720.,
      4880096.,  5015520.,  2875688.,  2969064.,  3063976.,  3160424.,
      1172910.,  1231806.,  1291854.,  1353054.,  1715304.,  1796904.,
      1880040.,  1964712.,  2338530.,  2444370.,  2552130.,  2661810.,
      2602050.,  2711730.,  2823330.,  2936850.,  2267880.,  2358696.,
      2451048.,  2544936.,  1843662.,  1914078.,  1985646.,  2058366.,
      1350318.,  1427646.,  1506126.,  1585758.,  2001000.,  2107176.,
      2214888.,  2324136.,  2757090.,  2893650.,  3032130.,  3172530.,
      2867010.,  3007410.,  3149730.,  3293970.,  2529000.,  2644392.,
      2761320.,  2879784.,  2076366.,  2165214.,  2255214.,  2346366.,
      2738728.,  2858728.,  2980264.,  3103336.,  3964128.,  4128224.,
      4294368.,  4462560.,  5352600.,  5562840.,  5775640.,  5991000.,
      5550360.,  5765720.,  5983640.,  6204120.,  4799200.,  4975584.,
      5154016.,  5334496.,  3872680.,  4008040.,  4144936.,  4283368.,
      4749890.,  4921010.,  5094050.,  5269010.,  6780120.,  7013400.,
      7249240.,  7487640.,  9042350.,  9340350.,  9641550.,  9945950.,
      9353550.,  9657950.,  9965550.,  10276350., 7987800.,  8236440.,
      8487640.,  8741400.,  6374690.,  6565010.,  6757250.,  6951410.,
      5778050.,  5972210.,  6168290.,  6366290.,  8212440.,  8476440.,
      8743000.,  9012120.,  10909550., 11245950., 11585550., 11928350.,
      11220750., 11563550., 11909550., 12258750., 9543000.,  9822360.,
      10104280., 10388760., 7587170.,  7800530.,  8015810.,  8233010.,
      6806210.,  7023410.,  7242530.,  7463570.,  9644760.,  9939480.,
      10236760., 10536600., 12776750., 13151550., 13529550., 13910750.,
      13087950., 13469150., 13853550., 14241150., 11098200., 11408280.,
      11720920., 12036120., 8799650.,  9036050.,  9274370.,  9514610.,
      7612072.,  7802728.,  7994920.,  8188648.,  10650336., 10908640.,
      11168992., 11431392., 13945880., 14273880., 14604440., 14937560.,
      14246040., 14579160., 14914840., 15253080., 11944160., 12214752.,
      12487392., 12762080., 9372712.,  9578728.,  9786280.,  9995368.,
      7426542.,  7582206.,  7739022.,  7896990.,  10311528., 10522152.,
      10734312., 10948008., 13406370., 13673490., 13942530., 14213490.,
      13669890., 13940850., 14213730., 14488530., 11380200., 11600040.,
      11821416., 12044328., 8871438.,  9038622.,  9206958.,  9376446.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    1724.,    3036.,    4604.,    6428.,    3068.,    4892.,
      6972.,    9308.,    4412.,    6748.,    9340.,    12188.,   4926.,
      6350.,    7902.,    9582.,    1180.,    3260.,    5596.,    8188.,
      10168.,   15352.,   21048.,   27256.,   16952.,   23160.,   29880.,
      37112.,   23736.,   30968.,   38712.,   46968.,   30520.,   38776.,
      47544.,   56824.,   24284.,   28924.,   33820.,   38972.,   13690.,
      19498.,   25690.,   32266.,   49844.,   62996.,   76916.,   91604.,
      66164.,   80852.,   96308.,   112532.,  82484.,   98708.,   115700.,
      133460.,  98804.,   116564.,  135092.,  154388.,  68314.,   77962.,
      87994.,   98410.,   46810.,   56458.,   66490.,   76906.,   131444.,
      152276.,  173876.,  196244.,  147764.,  170132.,  193268.,  217172.,
      164084.,  187988.,  212660.,  238100.,  180404.,  205844.,  232052.,
      259028.,  116794.,  130282.,  144154.,  158410.,  79930.,   93418.,
      107290.,  121546.,  213044.,  241556.,  270836.,  300884.,  229364.,
      259412.,  290228.,  321812.,  245684.,  277268.,  309620.,  342740.,
      262004.,  295124.,  329012.,  363668.,  165274.,  182602.,  200314.,
      218410.,  109020.,  119804.,  130844.,  142140.,  260664.,  283256.,
      306360.,  329976.,  275640.,  299256.,  323384.,  348024.,  290616.,
      315256.,  340408.,  366072.,  305592.,  331256.,  357432.,  384120.,
      179228.,  192572.,  206172.,  220028.,  85790.,   92078.,   98494.,
      105038.,  196476.,  209564.,  222908.,  236508.,  206012.,  219612.,
      233468.,  247580.,  215548.,  229660.,  244028.,  258652.,  225084.,
      239708.,  254588.,  269724.,  127550.,  135118.,  142814.,  150638.,
      990.,     2670.,    4478.,    6414.,    8444.,    12316.,   16444.,
      20828.,   22076.,   26460.,   31100.,   35996.,   35708.,   40604.,
      45756.,   51164.,   49340.,   54748.,   60412.,   66332.,   30462.,
      33422.,   36510.,   39726.,   33820.,   38972.,   44380.,   50044.,
      87736.,   99064.,   110904.,  123256.,  119096.,  131448.,  144312.,
      157688.,  150456.,  163832.,  177720.,  192120.,  181816.,  196216.,
      211128.,  226552.,  106076.,  113788.,  121756.,  129980.,  108730.,
      119146.,  129946.,  141130.,  258356.,  280724.,  303860.,  327764.,
      311540.,  335444.,  360116.,  385556.,  364724.,  390164.,  416372.,
      443348.,  417908.,  444884.,  472628.,  501140.,  237082.,  251338.,
      265978.,  281002.,  234010.,  248266.,  262906.,  277930.,  524276.,
      554324.,  585140.,  616724.,  577460.,  609044.,  641396.,  674516.,
      630644.,  663764.,  697652.,  732308.,  683828.,  718484.,  753908.,
      790100.,  377722.,  395818.,  414298.,  433162.,  359290.,  377386.,
      395866.,  414730.,  790196.,  827924.,  866420.,  905684.,  843380.,
      882644.,  922676.,  963476.,  896564.,  937364.,  978932.,  1021268.,
      949748.,  992084.,  1035188., 1079060., 518362.,  540298.,  562618.,
      585322.,  325980.,  339836.,  353948.,  368316.,  706872.,  735608.,
      764856.,  794616.,  746424.,  776184.,  806456.,  837240.,  785976.,
      816760.,  848056.,  879864.,  825528.,  857336.,  889656.,  922488.,
      445340.,  461756.,  478428.,  495356.,  209630.,  217454.,  225406.,
      233486.,  450300.,  466460.,  482876.,  499548.,  472124.,  488796.,
      505724.,  522908.,  493948.,  511132.,  528572.,  546268.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.,
      1950.,    5166.,    8510.,    11982.,   16508.,   23452.,   30652.,
      38108.,   42428.,   49884.,   57596.,   65564.,   68348.,   76316.,
      84540.,   93020.,   94268.,   102748.,  111484.,  120476.,  55998.,
      60494.,   65118.,   69870.,   66460.,   74684.,   83164.,   91900.,
      165304.,  182776.,  200760.,  219256.,  221240.,  239736.,  258744.,
      278264.,  277176.,  296696.,  316728.,  337272.,  333112.,  353656.,
      374712.,  396280.,  187868.,  198652.,  209692.,  220988.,  203770.,
      218794.,  234202.,  249994.,  466868.,  498452.,  530804.,  563924.,
      556916.,  590036.,  623924.,  658580.,  646964.,  681620.,  717044.,
      753236.,  737012.,  773204.,  810164.,  847892.,  405850.,  424714.,
      443962.,  463594.,  421210.,  440074.,  459322.,  478954.,  917108.,
      956372.,  996404.,  1037204., 1007156., 1047956., 1089524., 1131860.,
      1097204., 1139540., 1182644., 1226516., 1187252., 1231124., 1275764.,
      1321172., 638650.,  661354.,  684442.,  707914.,  638650.,  661354.,
      684442.,  707914.,  1367348., 1414292., 1462004., 1510484., 1457396.,
      1505876., 1555124., 1605140., 1547444., 1597460., 1648244., 1699796.,
      1637492., 1689044., 1741364., 1794452., 871450.,  897994.,  924922.,
      952234.,  542940.,  559868.,  577052.,  594492.,  1153080., 1187960.,
      1223352., 1259256., 1217208., 1253112., 1289528., 1326456., 1281336.,
      1318264., 1355704., 1393656., 1345464., 1383416., 1421880., 1460856.,
      711452.,  730940.,  750684.,  770684.,  333470.,  342830.,  352318.,
      361934.,  704124.,  723356.,  742844.,  762588.,  738236.,  757980.,
      777980.,  798236.,  772348.,  792604.,  813116.,  833884.,  806460.,
      827228.,  848252.,  869532.,  424382.,  435022.,  445790.,  456686.};
  const std::array<int, 4> in_shape = {{3, 7, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,   560.,   820.,   940.,   1060.,  980.,   837.,   892.,   1360.,
      1920.,  2130.,  2340.,  2096.,  1744.,  1820.,  2700.,  3725.,  4050.,
      4375.,  3840.,  3140.,  3080.,  4450.,  6000.,  6325.,  6650.,  5730.,
      4610.,  4340.,  6200.,  8275.,  8600.,  8925.,  7620.,  6080.,  5296.,
      7440.,  9780.,  10090., 10400., 8752.,  6892.,  5445.,  7580.,  9880.,
      10150., 10420., 8696.,  6795.,  3438.,  4970.,  6700.,  6820.,  6940.,
      5978.,  4806.,  6478.,  9200.,  12210., 12420., 12630., 10720., 8506.,
      10640., 14950., 19650., 19975., 20300., 17070., 13430., 11900., 16700.,
      21925., 22250., 22575., 18960., 14900., 13160., 18450., 24200., 24525.,
      24850., 20850., 16370., 13822., 19200., 24970., 25280., 25590., 21296.,
      16594., 12942., 17870., 23110., 23380., 23650., 19574., 15174., 6525.,
      9380.,  12580., 12700., 12820., 10976., 8775.,  12064., 17040., 22500.,
      22710., 22920., 19344., 15268., 19460., 27200., 35575., 35900., 36225.,
      30300., 23720., 20720., 28950., 37850., 38175., 38500., 32190., 25190.,
      21980., 30700., 40125., 40450., 40775., 34080., 26660., 22348., 30960.,
      40160., 40470., 40780., 33840., 26296., 20439., 28160., 36340., 36610.,
      36880., 30452., 23553.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   16.,   22.,   22.,   15.,   10.,   32.,   68.,
      89.,   110.,  96.,   60.,   42.,   114.,  219.,  264.,  309.,  252.,
      150.,  102.,  249.,  444.,  489.,  534.,  417.,  240.,  162.,  384.,
      669.,  714.,  759.,  582.,  330.,  196.,  440.,  734.,  773.,  812.,
      600.,  330.,  147.,  322.,  526.,  550.,  574.,  416.,  225.,  10.,
      31.,   64.,   97.,   130.,  103.,  60.,   73.,   176.,  311.,  386.,
      461.,  348.,  195.,  204.,  465.,  786.,  912.,  1038., 765.,  420.,
      399.,  870.,  1416., 1542., 1668., 1200., 645.,  594.,  1275., 2046.,
      2172., 2298., 1635., 870.,  529.,  1124., 1787., 1880., 1973., 1392.,
      735.,  336.,  709.,  1120., 1171., 1222., 857.,  450.,  19.,   58.,
      118.,  178.,  238.,  184.,  105.,  136.,  320.,  554.,  683.,  812.,
      600.,  330.,  366.,  816.,  1353., 1560., 1767., 1278., 690.,  696.,
      1491., 2388., 2595., 2802., 1983., 1050., 1026., 2166., 3423., 3630.,
      3837., 2688., 1410., 862.,  1808., 2840., 2987., 3134., 2184., 1140.,
      525.,  1096., 1714., 1792., 1870., 1298., 675.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,   4084.,   6035.,   6965.,   7895.,   7348.,   6309.,   6620.,
      10160.,  14420.,  16060.,  17700.,  15920.,  13292.,  13735.,  20460.,
      28325.,  30875.,  33425.,  29420.,  24115.,  23605.,  34180.,  46175.,
      48725.,  51275.,  44260.,  35665.,  33475.,  47900.,  64025.,  66575.,
      69125.,  59100.,  47215.,  41228.,  57968.,  76260.,  78700.,  81140.,
      68336.,  53852.,  42597.,  59332.,  77375.,  79505.,  81635.,  68164.,
      53289.,  26343.,  38188.,  51605.,  52535.,  53465.,  46156.,  37179.,
      50132.,  71312.,  94780.,  96420.,  98060.,  83344.,  66212.,  82825.,
      116500., 153275., 155825., 158375., 133300., 104965., 92695.,  130220.,
      171125., 173675., 176225., 148140., 116515., 102565., 143940., 188975.,
      191525., 194075., 162980., 128065., 108260., 150480., 195820., 198260.,
      200700., 167120., 130292., 101691., 140476., 181745., 183875., 186005.,
      154012., 119439., 50157.,  72292.,  97175.,  98105.,  99035.,  84964.,
      68049.,  93644.,  132464., 175140., 176780., 178420., 150768., 119132.,
      151915., 212540., 278225., 280775., 283325., 237180., 185815., 161785.,
      226260., 296075., 298625., 301175., 252020., 197365., 171655., 239980.,
      313925., 316475., 319025., 266860., 208915., 175292., 242992., 315380.,
      317820., 320260., 265904., 206732., 160785., 221620., 286115., 288245.,
      290375., 239860., 185589.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,    101.,   143.,   150.,   105.,   58.,    204.,
      454.,   610.,   766.,   684.,   434.,   279.,   786.,   1545.,  1887.,
      2229.,  1842.,  1107.,  729.,   1806.,  3255.,  3597.,  3939.,  3102.,
      1797.,  1179.,  2826.,  4965.,  5307.,  5649.,  4362.,  2487.,  1474.,
      3324.,  5566.,  5866.,  6166.,  4572.,  2522.,  1121.,  2462.,  4031.,
      4217.,  4403.,  3198.,  1733.,  59.,    202.,   437.,   695.,   953.,
      762.,   447.,   526.,   1284.,  2290.,  2878.,  3466.,  2628.,  1478.,
      1521.,  3486.,  5919.,  6909.,  7899.,  5838.,  3213.,  3051.,  6666.,
      10869., 11859., 12849., 9258.,  4983.,  4581.,  9846.,  15819., 16809.,
      17799., 12678., 6753.,  4102.,  8724.,  13882., 14614., 15346., 10836.,
      5726.,  2615.,  5522.,  8729.,  9131.,  9533.,  6690.,  3515.,  113.,
      382.,   815.,   1289.,  1763.,  1374.,  789.,   994.,   2364.,  4126.,
      5146.,  6166.,  4572.,  2522.,  2763.,  6186.,  10293., 11931., 13569.,
      9834.,  5319.,  5373.,  11526., 18483., 20121., 21759., 15414., 8169.,
      7983.,  16866., 26673., 28311., 29949., 20994., 11019., 6730.,  14124.,
      22198., 23362., 24526., 17100., 8930.,  4109.,  8582.,  13427., 14045.,
      14663., 10182., 5297.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,   31112.,   46210.,   53530.,   60850.,   56840.,   48942.,
      50920.,   78432.,   111640.,  124600.,  137560.,  124000.,  103720.,
      106610.,  159160.,  220750.,  240950.,  261150.,  230200.,  188930.,
      184730.,  267800.,  362150.,  382350.,  402550.,  347800.,  280490.,
      262850.,  376440.,  503550.,  523750.,  543950.,  465400.,  372050.,
      325288.,  457568.,  602200.,  621560.,  640920.,  540000.,  425704.,
      336942.,  469448.,  612370.,  629290.,  646210.,  539720.,  422046.,
      206118.,  299240.,  404890.,  412210.,  419530.,  362600.,  292374.,
      394312.,  561376.,  746680.,  759640.,  772600.,  657120.,  522376.,
      653450.,  919640.,  1210550., 1230750., 1250950., 1053400., 829850.,
      731570.,  1028280., 1351950., 1372150., 1392350., 1171000., 921410.,
      809690.,  1136920., 1493350., 1513550., 1533750., 1288600., 1012970.,
      856840.,  1191392., 1550840., 1570200., 1589560., 1324000., 1032520.,
      806166.,  1113896., 1441450., 1458370., 1475290., 1221800., 947718.,
      393102.,  567368.,  763570.,  770890.,  778210.,  668360.,  535806.,
      737704.,  1044320., 1381720., 1394680., 1407640., 1190240., 941032.,
      1200290., 1680120., 2200350., 2220550., 2240750., 1876600., 1470770.,
      1278410., 1788760., 2341750., 2361950., 2382150., 1994200., 1562330.,
      1356530., 1897400., 2483150., 2503350., 2523550., 2111800., 1653890.,
      1388392., 1925216., 2499480., 2518840., 2538200., 2108000., 1639336.,
      1275390., 1758344., 2270530., 2287450., 2304370., 1903880., 1473390.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     140.,    394.,    706.,    1018.,   1100.,  782.,    380.,
      1432.,   3284.,   4484.,   5684.,   5144.,   3292.,  2010.,   5796.,
      11550.,  14214.,  16878.,  14052.,  8490.,   5490.,  13716.,  24870.,
      27534.,  30198.,  23892.,  13890.,  8970.,   21636., 38190.,  40854.,
      43518.,  33732.,  19290.,  11420.,  25816.,  43316., 45668.,  48020.,
      35672.,  19708.,  8750.,   19244.,  31546.,  33010., 34474.,  25068.,
      13598.,  390.,    1436.,   3202.,   5242.,   7282.,  5852.,   3446.,
      3980.,   9784.,   17540.,  22196.,  26852.,  20408., 11500.,  11730.,
      26964.,  45894.,  53742.,  61590.,  45588.,  25122., 23850.,  52164.,
      85134.,  92982.,  100830., 72708.,  39162.,  35970., 77364.,  124374.,
      132222., 140070., 99828.,  53202.,  32300.,  68728., 109412., 115220.,
      121028., 85496.,  45196.,  20630.,  43580.,  68914., 72106.,  75298.,
      52860.,  27782.,  750.,    2732.,   6010.,   9778.,  13546.,  10604.,
      6110.,   7580.,   18136.,  31796.,  39908.,  48020., 35672.,  19708.,
      21450.,  48132.,  80238.,  93270.,  106302., 77124., 41754.,  42210.,
      90612.,  145398., 158430., 171462., 121524., 64434., 62970.,  133092.,
      210558., 223590., 236622., 165924., 87114.,  53180., 111640., 175508.,
      184772., 194036., 135320., 70684.,  32510.,  67916., 106282., 111202.,
      116122., 80652.,  41966.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,   1404.,   1844.,   2240.,   2755.,   3280.,   3205.,   3760.,
      3655.,   4240.,   3428.,   3920.,   2961.,   3348.,   3052.,   3568.,
      4720.,   5440.,   6740.,   7680.,   7540.,   8520.,   8340.,   9360.,
      7536.,   8384.,   6316.,   6976.,   6455.,   7280.,   9660.,   10800.,
      13425.,  14900.,  14675.,  16200.,  15925.,  17500.,  14060.,  15360.,
      11555.,  12560.,  11285.,  12320.,  16380.,  17800.,  22175.,  24000.,
      23425.,  25300.,  24675.,  26600.,  21340.,  22920.,  17225.,  18440.,
      16115.,  17360.,  23100.,  24800.,  30925.,  33100.,  32175.,  34400.,
      33425.,  35700.,  28620.,  30480.,  22895.,  24320.,  20044.,  21184.,
      28208.,  29760.,  37140.,  39120.,  38340.,  40360.,  39540.,  41600.,
      33328.,  35008.,  26284.,  27568.,  20817.,  21780.,  29012.,  30320.,
      37855.,  39520.,  38905.,  40600.,  39955.,  41680.,  33380.,  34784.,
      26109.,  27180.,  12591.,  13752.,  18308.,  19880.,  24805.,  26800.,
      25255.,  27280.,  25705.,  27760.,  22244.,  23912.,  17955.,  19224.,
      24220.,  25912.,  34512.,  36800.,  45940.,  48840.,  46740.,  49680.,
      47540.,  50520.,  40464.,  42880.,  32188.,  34024.,  40265.,  42560.,
      56700.,  59800.,  74675.,  78600.,  75925.,  79900.,  77175.,  81200.,
      65020.,  68280.,  51245.,  53720.,  45095.,  47600.,  63420.,  66800.,
      83425.,  87700.,  84675.,  89000.,  85925.,  90300.,  72300.,  75840.,
      56915.,  59600.,  49925.,  52640.,  70140.,  73800.,  92175.,  96800.,
      93425.,  98100.,  94675.,  99400.,  79580.,  83400.,  62585.,  65480.,
      52972.,  55288.,  73680.,  76800.,  95940.,  99880.,  97140.,  101120.,
      98340.,  102360., 81936.,  85184.,  63916.,  66376.,  49923.,  51768.,
      68996.,  71480.,  89305.,  92440.,  90355.,  93520.,  91405.,  94600.,
      75716.,  78296.,  58743.,  60696.,  24057.,  26100.,  34772.,  37520.,
      46855.,  50320.,  47305.,  50800.,  47755.,  51280.,  41060.,  43904.,
      32949.,  35100.,  45388.,  48256.,  64304.,  68160.,  85140.,  90000.,
      85940.,  90840.,  86740.,  91680.,  73392.,  77376.,  58060.,  61072.,
      74075.,  77840.,  103740., 108800., 135925., 142300., 137175., 143600.,
      138425., 144900., 115980., 121200., 90935.,  94880.,  78905.,  82880.,
      110460., 115800., 144675., 151400., 145925., 152700., 147175., 154000.,
      123260., 128760., 96605.,  100760., 83735.,  87920.,  117180., 122800.,
      153425., 160500., 154675., 161800., 155925., 163100., 130540., 136320.,
      102275., 106640., 85900.,  89392.,  119152., 123840., 154740., 160640.,
      155940., 161880., 157140., 163120., 130544., 135360., 101548., 105184.,
      79029.,  81756.,  108980., 112640., 140755., 145360., 141805., 146440.,
      142855., 147520., 118052., 121808., 91377.,  94212.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     6.,     16.,    19.,    40.,    37.,    64.,    55.,
      88.,    62.,    88.,    45.,    60.,    18.,    40.,    76.,    128.,
      182.,   272.,   254.,   356.,   326.,   440.,   300.,   384.,   194.,
      240.,   111.,   168.,   330.,   456.,   669.,   876.,   831.,   1056.,
      993.,   1236.,  834.,   1008.,  507.,   600.,   321.,   408.,   810.,
      996.,   1479.,  1776.,  1641.,  1956.,  1803.,  2136.,  1434.,  1668.,
      837.,   960.,   531.,   648.,   1290.,  1536.,  2289.,  2676.,  2451.,
      2856.,  2613.,  3036.,  2034.,  2328.,  1167.,  1320.,  690.,   784.,
      1564.,  1760.,  2630.,  2936.,  2774.,  3092.,  2918.,  3248.,  2172.,
      2400.,  1202.,  1320.,  533.,   588.,   1174.,  1288.,  1927.,  2104.,
      2017.,  2200.,  2107.,  2296.,  1534.,  1664.,  833.,   900.,   19.,
      40.,    78.,    124.,   181.,   256.,   307.,   388.,   433.,   520.,
      350.,   412.,   207.,   240.,   234.,   292.,   580.,   704.,   1046.,
      1244.,  1334.,  1544.,  1622.,  1844.,  1236.,  1392.,  698.,   780.,
      705.,   816.,   1626.,  1860.,  2775.,  3144.,  3261.,  3648.,  3747.,
      4152.,  2778.,  3060.,  1533.,  1680.,  1455.,  1596.,  3186.,  3480.,
      5205.,  5664.,  5691.,  6168.,  6177.,  6672.,  4458.,  4800.,  2403.,
      2580.,  2205.,  2376.,  4746.,  5100.,  7635.,  8184.,  8121.,  8688.,
      8607.,  9192.,  6138.,  6540.,  3273.,  3480.,  1986.,  2116.,  4228.,
      4496.,  6734.,  7148.,  7094.,  7520.,  7454.,  7892.,  5268.,  5568.,
      2786.,  2940.,  1271.,  1344.,  2686.,  2836.,  4249.,  4480.,  4447.,
      4684.,  4645.,  4888.,  3262.,  3428.,  1715.,  1800.,  37.,    76.,
      150.,   232.,   343.,   472.,   577.,   712.,   811.,   952.,   638.,
      736.,   369.,   420.,   450.,   544.,   1084.,  1280.,  1910.,  2216.,
      2414.,  2732.,  2918.,  3248.,  2172.,  2400.,  1202.,  1320.,  1299.,
      1464.,  2922.,  3264.,  4881.,  5412.,  5691.,  6240.,  6501.,  7068.,
      4722.,  5112.,  2559.,  2760.,  2589.,  2784.,  5562.,  5964.,  8931.,
      9552.,  9741.,  10380., 10551., 11208., 7482.,  7932.,  3969.,  4200.,
      3879.,  4104.,  8202.,  8664.,  12981., 13692., 13791., 14520., 14601.,
      15348., 10242., 10752., 5379.,  5640.,  3282.,  3448.,  6892.,  7232.,
      10838., 11360., 11414., 11948., 11990., 12536., 8364.,  8736.,  4370.,
      4560.,  2009.,  2100.,  4198.,  4384.,  6571.,  6856.,  6877.,  7168.,
      7183.,  7480.,  4990.,  5192.,  2597.,  2700.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,    10665.,   13996.,   17116.,   21035.,   25175.,   24575.,
      28955.,   28115.,   32735.,   26476.,   30364.,   22941.,   26001.,
      23420.,   27500.,   36368.,   42064.,   52100.,   59540.,   58420.,
      66180.,   64740.,   72820.,   58640.,   65360.,   49244.,   54476.,
      50035.,   56575.,   75060.,   84100.,   104525.,  116225.,  114425.,
      126525.,  124325.,  136825.,  109940.,  120260.,  90475.,   98455.,
      88255.,   96475.,   128260.,  139540.,  173825.,  188325.,  183725.,
      198625.,  193625.,  208925.,  167620.,  180180.,  135415.,  145075.,
      126475.,  136375.,  181460.,  194980.,  243125.,  260425.,  253025.,
      270725.,  262925.,  281025.,  225300.,  240100.,  180355.,  191695.,
      158108.,  167180.,  222608.,  234960.,  293220.,  308980.,  302740.,
      318820.,  312260.,  328660.,  263312.,  276688.,  207740.,  217964.,
      164637.,  172305.,  229516.,  239932.,  299555.,  312815.,  307895.,
      321395.,  316235.,  329975.,  264268.,  275452.,  206757.,  215289.,
      98433.,   107685.,  143356.,  155884.,  194495.,  210395.,  198035.,
      214175.,  201575.,  217955.,  174652.,  187948.,  141129.,  151245.,
      190412.,  203900.,  271568.,  289808.,  361780.,  384900.,  368100.,
      391540.,  374420.,  398180.,  318928.,  338192.,  253868.,  268508.,
      317575.,  335875.,  447460.,  472180.,  589625.,  620925.,  599525.,
      631225.,  609425.,  641525.,  513700.,  539700.,  405055.,  424795.,
      355795.,  375775.,  500660.,  527620.,  658925.,  693025.,  668825.,
      703325.,  678725.,  713625.,  571380.,  599620.,  449995.,  471415.,
      394015.,  415675.,  553860.,  583060.,  728225.,  765125.,  738125.,
      775425.,  748025.,  785725.,  629060.,  659540.,  494935.,  518035.,
      419180.,  437660.,  583248.,  608144.,  759700.,  791140.,  769220.,
      800980.,  778740.,  810820.,  649040.,  674960.,  506444.,  526076.,
      395721.,  410445.,  547036.,  566860.,  708215.,  733235.,  716555.,
      741815.,  724895.,  750395.,  600604.,  621196.,  466065.,  481653.,
      188397.,  204705.,  272716.,  294652.,  367955.,  395615.,  371495.,
      399395.,  375035.,  403175.,  322828.,  345532.,  259317.,  276489.,
      357404.,  380300.,  506768.,  537552.,  671460.,  710260.,  677780.,
      716900.,  684100.,  723540.,  579216.,  611024.,  458492.,  482540.,
      585115.,  615175.,  819860.,  860260.,  1074725., 1125625., 1084625.,
      1135925., 1094525., 1146225., 917460.,  959140.,  719635.,  751135.,
      623335.,  655075.,  873060.,  915700.,  1144025., 1197725., 1153925.,
      1208025., 1163825., 1218325., 975140.,  1019060., 764575.,  797755.,
      661555.,  694975.,  926260.,  971140.,  1213325., 1269825., 1223225.,
      1280125., 1233125., 1290425., 1032820., 1078980., 809515.,  844375.,
      680252.,  708140.,  943888.,  981328.,  1226180., 1273300., 1235700.,
      1283140., 1245220., 1292980., 1034768., 1073232., 805148.,  834188.,
      626805.,  648585.,  864556.,  893788.,  1116875., 1153655., 1125215.,
      1162235., 1133555., 1170815., 936940.,  966940.,  725373.,  748017.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     34.,     106.,    119.,    275.,    251.,   455.,
      383.,    635.,    450.,    650.,    333.,    449.,    106.,   274.,
      516.,    916.,    1294.,   1990.,   1846.,   2638.,   2398.,  3286.,
      2244.,   2900.,   1466.,   1826.,   783.,    1227.,   2406.,  3390.,
      4965.,   6585.,   6225.,   7989.,   7485.,   9393.,   6342.,  7710.,
      3879.,   4611.,   2403.,   3087.,   6126.,   7590.,   11265., 13605.,
      12525.,  15009.,  13785.,  16413.,  11022.,  12870.,  6459.,  7431.,
      4023.,   4947.,   9846.,   11790.,  17565.,  20625.,  18825., 22029.,
      20085.,  23433.,  15702.,  18030.,  9039.,   10251.,  5338.,  6082.,
      12132.,  13684.,  20446.,  22870.,  21574.,  24094.,  22702., 25318.,
      16932.,  18740.,  9386.,   10322.,  4157.,   4593.,   9170.,  10074.,
      15071.,  16475.,  15779.,  17231.,  16487.,  17987.,  12018., 13050.,
      6533.,   7065.,   113.,    277.,    538.,    898.,    1307.,  1895.,
      2303.,   2939.,   3299.,   3983.,   2682.,   3170.,   1593.,  1853.,
      1762.,   2218.,   4404.,   5380.,   7990.,   9550.,   10270., 11926.,
      12550.,  14302.,  9588.,   10820.,  5426.,   6074.,   5427.,  6303.,
      12558.,  14406.,  21489.,  24405.,  25341.,  28401.,  29193., 32397.,
      21678.,  23910.,  11979.,  13143.,  11367.,  12483.,  24918., 27246.,
      40749.,  44385.,  44601.,  48381.,  48453.,  52377.,  34998., 37710.,
      18879.,  20283.,  17307.,  18663.,  37278.,  40086.,  60009., 64365.,
      63861.,  68361.,  67713.,  72357.,  48318.,  51510.,  25779., 27423.,
      15634.,  16666.,  33300.,  35428.,  53062.,  56350.,  55918., 59302.,
      58774.,  62254.,  41556.,  43940.,  21986.,  23210.,  10025., 10605.,
      21194.,  22386.,  33539.,  35375.,  35111.,  36995.,  36683., 38615.,
      25770.,  27090.,  13553.,  14229.,  221.,    529.,    1042.,  1690.,
      2495.,   3515.,   4355.,   5423.,   6215.,   7331.,   4914.,  5690.,
      2853.,   3257.,   3418.,   4162.,   8292.,   9844.,   14686., 17110.,
      18694.,  21214.,  22702.,  25318.,  16932.,  18740.,  9386.,  10322.,
      10071.,  11379.,  22710.,  25422.,  38013.,  42225.,  44457., 48813.,
      50901.,  55401.,  37014.,  40110.,  20079.,  21675.,  20331., 21879.,
      43710.,  46902.,  70233.,  75165.,  76677.,  81753.,  83121., 88341.,
      58974.,  62550.,  31299.,  33135.,  30591.,  32379.,  64710., 68382.,
      102453., 108105., 108897., 114693., 115341., 121281., 80934., 84990.,
      42519.,  44595.,  25930.,  27250.,  54468.,  57172.,  85678., 89830.,
      90262.,  94510.,  94846.,  99190.,  66180.,  69140.,  34586., 36098.,
      15893.,  16617.,  33218.,  34698.,  52007.,  54275.,  54443., 56759.,
      56879.,  59243.,  39522.,  41130.,  20573.,  21393.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,    83070.,   108968.,   133736.,  164290.,  197170.,   192370.,
      227170.,   220450.,  257170.,   208040.,  238952.,  180558.,   204894.,
      183400.,   215848.,  285408.,   330720.,  409560.,  468760.,   459800.,
      521560.,   510040.,  574360.,   462560.,  516064.,  388840.,   430504.,
      393890.,   445970.,  591640.,   663640.,  824750.,  917950.,   903550.,
      999950.,   982350.,  1081950.,  869400.,  951640.,  715970.,   779570.,
      697970.,   763490.,  1015000.,  1104920., 1376350., 1491950.,  1455150.,
      1573950.,  1533950., 1655950.,  1328600., 1428760., 1073810.,  1150850.,
      1002050.,  1081010., 1438360.,  1546200., 1927950., 2065950.,  2006750.,
      2147950.,  2085550., 2229950.,  1787800., 1905880., 1431650.,  1522130.,
      1255912.,  1328296., 1768672.,  1867232., 2330200., 2455960.,  2406040.,
      2534360.,  2481880., 2612760.,  2093280., 2200032., 1651816.,  1733416.,
      1309518.,  1370718., 1825832.,  1908968., 2383330., 2489170.,  2449810.,
      2557570.,  2516290., 2625970.,  2103080., 2192360., 1645614.,  1713726.,
      778302.,   852174.,  1134440.,  1234472., 1540210., 1667170.,  1568290.,
      1697170.,  1596370., 1727170.,  1384040., 1490216., 1119006.,  1199790.,
      1509928.,  1617640., 2154464.,  2300128., 2871320., 3055960.,  2921560.,
      3108760.,  2971800., 3161560.,  2532320., 2686176., 2016424.,  2133352.,
      2522450.,  2668610., 3555160.,  3752600., 4685950., 4935950.,  4764750.,
      5017950.,  4843550., 5099950.,  4083800., 4291480., 3220850.,  3378530.,
      2826530.,  2986130., 3978520.,  4193880., 5237550., 5509950.,  5316350.,
      5591950.,  5395150., 5673950.,  4543000., 4768600., 3578690.,  3749810.,
      3130610.,  3303650., 4401880.,  4635160., 5789150., 6083950.,  5867950.,
      6165950.,  5946750., 6247950.,  5002200., 5245720., 3936530.,  4121090.,
      3335080.,  3482728., 4641248.,  4840160., 6046360., 6297560.,  6122200.,
      6375960.,  6198040., 6454360.,  5166560., 5373664., 4032040.,  4188904.,
      3151134.,  3268782., 4356584.,  4514984., 5640850., 5840770.,  5707330.,
      5909170.,  5773810., 5977570.,  4784360., 4948904., 3713022.,  3837582.,
      1490958.,  1621278., 2159912.,  2335208., 2916130., 3137170.,  2944210.,
      3167170.,  2972290., 3197170.,  2560040., 2741480., 2057454.,  2194686.,
      2836456.,  3019432., 4023520.,  4269536., 5333080., 5643160.,  5383320.,
      5695960.,  5433560., 5748760.,  4602080., 4856288., 3644008.,  3836200.,
      4651010.,  4891250., 6518680.,  6841560., 8547150., 8953950.,  8625950.,
      9035950.,  8704750., 9117950.,  7298200., 7631320., 5725730.,  5977490.,
      4955090.,  5208770., 6942040.,  7282840., 9098750., 9527950.,  9177550.,
      9609950.,  9256350., 9691950.,  7757400., 8108440., 6083570.,  6348770.,
      5259170.,  5526290., 7365400.,  7724120., 9650350., 10101950., 9729150.,
      10183950., 9807950., 10265950., 8216600., 8585560., 6441410.,  6720050.,
      5414248.,  5637160., 7513824.,  7813088., 9762520., 10139160., 9838360.,
      10217560., 9914200., 10295960., 8239840., 8547296., 6412264.,  6644392.,
      4992750.,  5166846., 6887336.,  7121000., 8898370., 9192370.,  8964850.,
      9260770.,  9031330., 9329170.,  7465640., 7705448., 5780430.,  5961438.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    826.,    2026.,   1834.,   3418.,
      2842.,   4810.,   3420.,   4988.,   2558.,   3470.,   700.,    2012.,
      3768.,   6904.,   9716.,   15188.,  14036.,  20276.,  18356.,  25364.,
      17336.,  22520.,  11388.,  14236.,  5850.,   9354.,   18324.,  26100.,
      38190.,  51006.,  48126.,  62094.,  58062.,  73182.,  49428.,  60276.,
      30330.,  36138.,  18570.,  23994.,  47604.,  59220.,  87870.,  106446.,
      97806.,  117534., 107742., 128622., 86388.,  101076., 50730.,  58458.,
      31290.,  38634.,  76884.,  92340.,  137550., 161886., 147486., 172974.,
      157422., 184062., 123348., 141876., 71130.,  80778.,  41980.,  47900.,
      95544.,  107896., 161204., 180500., 170132., 190196., 179060., 199892.,
      133688., 148088., 74172.,  81628.,  32830.,  36302.,  72476.,  79676.,
      119194., 130378., 124810., 136378., 130426., 142378., 95132.,  103356.,
      51742.,  55982.,  750.,    2046.,   3964.,   6812.,   9898.,   14554.,
      17818.,  22858.,  25738.,  31162.,  20988.,  24860.,  12494.,  14558.,
      13660.,  17276.,  34296.,  42040.,  62420.,  74804.,  80564.,  93716.,
      98708.,  112628., 75512.,  85304.,  42780.,  47932.,  42570.,  49530.,
      98676.,  113364., 169086., 192270., 199758., 224094., 230430., 255918.,
      171252., 189012., 94698.,  103962., 89850.,  98730.,  197076., 215604.,
      322446., 351390., 353118., 383214., 383790., 415038., 277332., 298932.,
      149658., 160842., 137130., 147930., 295476., 317844., 475806., 510510.,
      506478., 542334., 537150., 574158., 383412., 408852., 204618., 217722.,
      124060., 132284., 264312., 281272., 421268., 447476., 444020., 470996.,
      466772., 494516., 330104., 349112., 174684., 184444., 79630.,  84254.,
      168380., 177884., 266506., 281146., 279034., 294058., 291562., 306970.,
      204860., 215388., 107758., 113150., 1470.,   3918.,   7708.,   12860.,
      18970.,  27082.,  33802.,  42298.,  48634.,  57514.,  38556.,  44732.,
      22430.,  25646.,  26620.,  32540.,  64824.,  77176.,  115124., 134420.,
      147092., 167156., 179060., 199892., 133688., 148088., 74172.,  81628.,
      79290.,  89706.,  179028., 200628., 299982., 333534., 351390., 386094.,
      402798., 438654., 293076., 317748., 159066., 171786., 161130., 173466.,
      346548., 371988., 557022., 596334., 608430., 648894., 659838., 701454.,
      468276., 496788., 248586., 263226., 242970., 257226., 514068., 543348.,
      814062., 859134., 865470., 911694., 916878., 964254., 643476., 675828.,
      338106., 354666., 206140., 216668., 433080., 454648., 681332., 714452.,
      717908., 751796., 754484., 789140., 526520., 550136., 275196., 287260.,
      126430., 132206., 264284., 276092., 413818., 431914., 433258., 451738.,
      452698., 471562., 314588., 327420., 163774., 170318.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      62015.,  64460.,  66935.,  69440.,  89060.,  92400.,  95780.,  99200.,
      119425., 123700., 128025., 132400., 124325., 128700., 133125., 137600.,
      129225., 133700., 138225., 142800., 110820., 114480., 118180., 121920.,
      88775.,  91580.,  94415.,  97280.,  77932.,  80176.,  82444.,  84736.,
      109776., 112832., 115920., 119040., 144660., 148560., 152500., 156480.,
      149380., 153360., 157380., 161440., 154100., 158160., 162260., 166400.,
      130000., 133312., 136656., 140032., 102604., 105136., 107692., 110272.,
      81369.,  83268.,  85185.,  87120.,  113468., 116048., 118652., 121280.,
      148135., 151420., 154735., 158080., 152275., 155620., 158995., 162400.,
      156415., 159820., 163255., 166720., 130748., 133520., 136316., 139136.,
      102321., 104436., 106569., 108720., 48069.,  50364.,  52677.,  55008.,
      70124.,  73232.,  76364.,  79520.,  95275.,  99220.,  103195., 107200.,
      97015.,  101020., 105055., 109120., 98755.,  102820., 106915., 111040.,
      85676.,  88976.,  92300.,  95648.,  69309.,  71820.,  74349.,  76896.,
      93532.,  96880.,  100252., 103648., 133520., 138048., 142608., 147200.,
      178020., 183760., 189540., 195360., 181140., 186960., 192820., 198720.,
      184260., 190160., 196100., 202080., 157072., 161856., 166672., 171520.,
      125116., 128752., 132412., 136096., 156515., 161060., 165635., 170240.,
      220660., 226800., 232980., 239200., 290925., 298700., 306525., 314400.,
      295825., 303700., 311625., 319600., 300725., 308700., 316725., 324800.,
      253620., 260080., 266580., 273120., 200075., 204980., 209915., 214880.,
      175415., 180380., 185375., 190400., 246980., 253680., 260420., 267200.,
      325225., 333700., 342225., 350800., 330125., 338700., 347325., 356000.,
      335025., 343700., 352425., 361200., 282180., 289200., 296260., 303360.,
      222335., 227660., 233015., 238400., 194315., 199700., 205115., 210560.,
      273300., 280560., 287860., 295200., 359525., 368700., 377925., 387200.,
      364425., 373700., 383025., 392400., 369325., 378700., 388125., 397600.,
      310740., 318320., 325940., 333600., 244595., 250340., 256115., 261920.,
      207292., 211888., 216508., 221152., 288528., 294720., 300944., 307200.,
      375940., 383760., 391620., 399520., 380660., 388560., 396500., 404480.,
      385380., 393360., 401380., 409440., 321296., 327744., 334224., 340736.,
      250780., 255664., 260572., 265504., 196029., 199692., 203373., 207072.,
      271052., 275984., 280940., 285920., 350995., 357220., 363475., 369760.,
      355135., 361420., 367735., 374080., 359275., 365620., 371995., 378400.,
      297740., 302864., 308012., 313184., 231093., 234972., 238869., 242784.,
      92169.,  96228.,  100305., 104400., 133628., 139088., 144572., 150080.,
      180535., 187420., 194335., 201280., 182275., 189220., 196195., 203200.,
      184015., 191020., 198055., 205120., 158588., 164240., 169916., 175616.,
      127521., 131796., 136089., 140400., 175852., 181552., 187276., 193024.,
      249552., 257216., 264912., 272640., 330900., 340560., 350260., 360000.,
      334020., 343760., 353540., 363360., 337140., 346960., 356820., 366720.,
      285648., 293568., 301520., 309504., 226252., 232240., 238252., 244288.,
      288815., 296300., 303815., 311360., 404900., 414960., 425060., 435200.,
      531025., 543700., 556425., 569200., 535925., 548700., 561525., 574400.,
      540825., 553700., 566625., 579600., 453540., 463920., 474340., 484800.,
      355895., 363740., 371615., 379520., 307715., 315620., 323555., 331520.,
      431220., 441840., 452500., 463200., 565325., 578700., 592125., 605600.,
      570225., 583700., 597225., 610800., 575125., 588700., 602325., 616000.,
      482100., 493040., 504020., 515040., 378155., 386420., 394715., 403040.,
      326615., 334940., 343295., 351680., 457540., 468720., 479940., 491200.,
      599625., 613700., 627825., 642000., 604525., 618700., 632925., 647200.,
      609425., 623700., 638025., 652400., 510660., 522160., 533700., 545280.,
      400415., 409100., 417815., 426560., 336652., 343600., 350572., 357568.,
      467280., 476608., 485968., 495360., 607220., 618960., 630740., 642560.,
      611940., 623760., 635620., 647520., 616660., 628560., 640500., 652480.,
      512592., 522176., 531792., 541440., 398956., 406192., 413452., 420736.,
      310689., 316116., 321561., 327024., 428636., 435920., 443228., 450560.,
      553855., 563020., 572215., 581440., 557995., 567220., 576475., 585760.,
      562135., 571420., 580735., 590080., 464732., 472208., 479708., 487232.,
      359865., 365508., 371169., 376848.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   103.,   148.,   199.,   256.,   163.,   220.,
      283.,   352.,   202.,   248.,   298.,   352.,   153.,   180.,   209.,
      240.,   34.,    72.,    114.,   160.,   212.,   304.,   404.,   512.,
      566.,   728.,   902.,   1088.,  830.,   1016.,  1214.,  1424.,  1094.,
      1304.,  1526.,  1760.,  1044.,  1200.,  1364.,  1536.,  690.,   776.,
      866.,   960.,   339.,   444.,   555.,   672.,   1086.,  1320.,  1566.,
      1824.,  2289.,  2676.,  3081.,  3504.,  2901.,  3324.,  3765.,  4224.,
      3513.,  3972.,  4449.,  4944.,  3006.,  3336.,  3678.,  4032.,  1851.,
      2028.,  2211.,  2400.,  1119.,  1284.,  1455.,  1632.,  2886.,  3240.,
      3606.,  3984.,  5349.,  5916.,  6501.,  7104.,  5961.,  6564.,  7185.,
      7824.,  6573.,  7212.,  7869.,  8544.,  5286.,  5736.,  6198.,  6672.,
      3111.,  3348.,  3591.,  3840.,  1899.,  2124.,  2355.,  2592.,  4686.,
      5160.,  5646.,  6144.,  8409.,  9156.,  9921.,  10704., 9021.,  9804.,
      10605., 11424., 9633.,  10452., 11289., 12144., 7566.,  8136.,  8718.,
      9312.,  4371.,  4668.,  4971.,  5280.,  2578.,  2760.,  2946.,  3136.,
      5876.,  6256.,  6644.,  7040.,  9926.,  10520., 11126., 11744., 10478.,
      11096., 11726., 12368., 11030., 11672., 12326., 12992., 8244.,  8688.,
      9140.,  9600.,  4578.,  4808.,  5042.,  5280.,  2025.,  2132.,  2241.,
      2352.,  4474.,  4696.,  4922.,  5152.,  7363.,  7708.,  8059.,  8416.,
      7711.,  8068.,  8431.,  8800.,  8059.,  8428.,  8803.,  9184.,  5882.,
      6136.,  6394.,  6656.,  3201.,  3332.,  3465.,  3600.,  37.,    76.,
      117.,   160.,   226.,   312.,   402.,   496.,   583.,   724.,   871.,
      1024.,  1075.,  1228.,  1387.,  1552.,  1567.,  1732.,  1903.,  2080.,
      1282.,  1400.,  1522.,  1648.,  765.,   828.,   893.,   960.,   826.,
      936.,   1050.,  1168.,  2084.,  2320.,  2564.,  2816.,  3806.,  4184.,
      4574.,  4976.,  4934.,  5336.,  5750.,  6176.,  6062.,  6488.,  6926.,
      7376.,  4644.,  4944.,  5252.,  5568.,  2634.,  2792.,  2954.,  3120.,
      2607.,  2820.,  3039.,  3264.,  6054.,  6504.,  6966.,  7440.,  10389.,
      11100., 11829., 12576., 12297., 13044., 13809., 14592., 14205., 14988.,
      15789., 16608., 10566., 11112., 11670., 12240., 5847.,  6132.,  6423.,
      6720.,  5547.,  5820.,  6099.,  6384.,  12174., 12744., 13326., 13920.,
      19929., 20820., 21729., 22656., 21837., 22764., 23709., 24672., 23745.,
      24708., 25689., 26688., 17166., 17832., 18510., 19200., 9267.,  9612.,
      9963.,  10320., 8487.,  8820.,  9159.,  9504.,  18294., 18984., 19686.,
      20400., 29469., 30540., 31629., 32736., 31377., 32484., 33609., 34752.,
      33285., 34428., 35589., 36768., 23766., 24552., 25350., 26160., 12687.,
      13092., 13503., 13920., 7690.,  7944.,  8202.,  8464.,  16388., 16912.,
      17444., 17984., 26126., 26936., 27758., 28592., 27542., 28376., 29222.,
      30080., 28958., 29816., 30686., 31568., 20484., 21072., 21668., 22272.,
      10842., 11144., 11450., 11760., 4941.,  5084.,  5229.,  5376.,  10450.,
      10744., 11042., 11344., 16543., 16996., 17455., 17920., 17323., 17788.,
      18259., 18736., 18103., 18580., 19063., 19552., 12722., 13048., 13378.,
      13712., 6693.,  6860.,  7029.,  7200.,  73.,    148.,   225.,   304.,
      442.,   600.,   762.,   928.,   1123.,  1372.,  1627.,  1888.,  2047.,
      2308.,  2575.,  2848.,  2971.,  3244.,  3523.,  3808.,  2362.,  2552.,
      2746.,  2944.,  1377.,  1476.,  1577.,  1680.,  1618.,  1800.,  1986.,
      2176.,  3956.,  4336.,  4724.,  5120.,  7046.,  7640.,  8246.,  8864.,
      9038.,  9656.,  10286., 10928., 11030., 11672., 12326., 12992., 8244.,
      8688.,  9140.,  9600.,  4578.,  4808.,  5042.,  5280.,  4875.,  5196.,
      5523.,  5856.,  11022., 11688., 12366., 13056., 18489., 19524., 20577.,
      21648., 21693., 22764., 23853., 24960., 24897., 26004., 27129., 28272.,
      18126., 18888., 19662., 20448., 9843.,  10236., 10635., 11040., 9975.,
      10356., 10743., 11136., 21462., 22248., 23046., 23856., 34509., 35724.,
      36957., 38208., 37713., 38964., 40233., 41520., 40917., 42204., 43509.,
      44832., 29046., 29928., 30822., 31728., 15423., 15876., 16335., 16800.,
      15075., 15516., 15963., 16416., 31902., 32808., 33726., 34656., 50529.,
      51924., 53337., 54768., 53733., 55164., 56613., 58080., 56937., 58404.,
      59889., 61392., 39966., 40968., 41982., 43008., 21003., 21516., 22035.,
      22560., 12802., 13128., 13458., 13792., 26900., 27568., 28244., 28928.,
      42326., 43352., 44390., 45440., 44606., 45656., 46718., 47792., 46886.,
      47960., 49046., 50144., 32724., 33456., 34196., 34944., 17106., 17480.,
      17858., 18240., 7857.,  8036.,  8217.,  8400.,  16426., 16792., 17162.,
      17536., 25723., 26284., 26851., 27424., 26935., 27508., 28087., 28672.,
      28147., 28732., 29323., 29920., 19562., 19960., 20362., 20768., 10185.,
      10388., 10593., 10800.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      491275.,  510775.,  530515.,  550495.,  705860.,  732500.,  759460.,
      786740.,  946925.,  981025.,  1015525., 1050425., 985925.,  1020825.,
      1056125., 1091825., 1024925., 1060625., 1096725., 1133225., 879300.,
      908500.,  938020.,  967860.,  704635.,  727015.,  749635.,  772495.,
      619004.,  636908.,  655004.,  673292.,  872144.,  896528.,  921168.,
      946064.,  1149540., 1180660., 1212100., 1243860., 1187140., 1218900.,
      1250980., 1283380., 1224740., 1257140., 1289860., 1322900., 1033424.,
      1059856., 1086544., 1113488., 815804.,  836012.,  856412.,  877004.,
      647181.,  662337.,  677637.,  693081.,  902620.,  923212.,  943996.,
      964972.,  1178555., 1204775., 1231235., 1257935., 1211555., 1238255.,
      1265195., 1292375., 1244555., 1271735., 1299155., 1326815., 1040476.,
      1062604., 1084924., 1107436., 814365.,  831249.,  848277.,  865449.,
      379989.,  398313.,  416781.,  435393.,  554812.,  579628.,  604636.,
      629836.,  754355.,  785855.,  817595.,  849575.,  768155.,  800135.,
      832355.,  864815.,  781955.,  814415.,  847115.,  880055.,  678844.,
      705196.,  731740.,  758476.,  549477.,  569529.,  589725.,  610065.,
      741596.,  768332.,  795260.,  822380.,  1059152., 1095312., 1131728.,
      1168400., 1412740., 1458580., 1504740., 1551220., 1437540., 1484020.,
      1530820., 1577940., 1462340., 1509460., 1556900., 1604660., 1247056.,
      1285264., 1323728., 1362448., 993692.,  1022732., 1051964., 1081388.,
      1243075., 1279375., 1315915., 1352695., 1753060., 1802100., 1851460.,
      1901140., 2311925., 2374025., 2436525., 2499425., 2350925., 2413825.,
      2477125., 2540825., 2389925., 2453625., 2517725., 2582225., 2016100.,
      2067700., 2119620., 2171860., 1590835., 1630015., 1669435., 1709095.,
      1393435., 1433095., 1472995., 1513135., 1962500., 2016020., 2069860.,
      2124020., 2584925., 2652625., 2720725., 2789225., 2623925., 2692425.,
      2761325., 2830625., 2662925., 2732225., 2801925., 2872025., 2243460.,
      2299540., 2355940., 2412660., 1768075., 1810615., 1853395., 1896415.,
      1543795., 1586815., 1630075., 1673575., 2171940., 2229940., 2288260.,
      2346900., 2857925., 2931225., 3004925., 3079025., 2896925., 2971025.,
      3045525., 3120425., 2935925., 3010825., 3086125., 3161825., 2470820.,
      2531380., 2592260., 2653460., 1945315., 1991215., 2037355., 2083735.,
      1649180., 1685900., 1722812., 1759916., 2295888., 2345360., 2395088.,
      2445072., 2991940., 3054420., 3117220., 3180340., 3029540., 3092660.,
      3156100., 3219860., 3067140., 3130900., 3194980., 3259380., 2557520.,
      2609040., 2660816., 2712848., 1996508., 2035532., 2074748., 2114156.,
      1560933., 1590201., 1619613., 1649169., 2158588., 2197996., 2237596.,
      2277388., 2795555., 2845295., 2895275., 2945495., 2828555., 2878775.,
      2929235., 2979935., 2861555., 2912255., 2963195., 3014375., 2371708.,
      2412652., 2453788., 2495116., 1841013., 1872009., 1903149., 1934433.,
      729261.,  761697.,  794277.,  827001.,  1058140., 1101772., 1145596.,
      1189612., 1430555., 1485575., 1540835., 1596335., 1444355., 1499855.,
      1555595., 1611575., 1458155., 1514135., 1570355., 1626815., 1257436.,
      1302604., 1347964., 1393516., 1011645., 1045809., 1080117., 1114569.,
      1395452., 1441004., 1486748., 1532684., 1981136., 2042384., 2103888.,
      2165648., 2627940., 2705140., 2782660., 2860500., 2652740., 2730580.,
      2808740., 2887220., 2677540., 2756020., 2834820., 2913940., 2269392.,
      2332688., 2396240., 2460048., 1798076., 1845932., 1893980., 1942220.,
      2295595., 2355415., 2415475., 2475775., 3219140., 3299540., 3380260.,
      3461300., 4222925., 4324225., 4425925., 4528025., 4261925., 4364025.,
      4466525., 4569425., 4300925., 4403825., 4507125., 4610825., 3607620.,
      3690580., 3773860., 3857460., 2831515., 2894215., 2957155., 3020335.,
      2445955., 2509135., 2572555., 2636215., 3428580., 3513460., 3598660.,
      3684180., 4495925., 4602825., 4710125., 4817825., 4534925., 4642625.,
      4750725., 4859225., 4573925., 4682425., 4791325., 4900625., 3834980.,
      3922420., 4010180., 4098260., 3008755., 3074815., 3141115., 3207655.,
      2596315., 2662855., 2729635., 2796655., 3638020., 3727380., 3817060.,
      3907060., 4768925., 4881425., 4994325., 5107625., 4807925., 4921225.,
      5034925., 5149025., 4846925., 4961025., 5075525., 5190425., 4062340.,
      4154260., 4246500., 4339060., 3185995., 3255415., 3325075., 3394975.,
      2679356., 2734892., 2790620., 2846540., 3719632., 3794192., 3869008.,
      3944080., 4834340., 4928180., 5022340., 5116820., 4871940., 4966420.,
      5061220., 5156340., 4909540., 5004660., 5100100., 5195860., 4081616.,
      4158224., 4235088., 4312208., 3177212., 3235052., 3293084., 3351308.,
      2474685., 2518065., 2561589., 2605257., 3414556., 3472780., 3531196.,
      3589804., 4412555., 4485815., 4559315., 4633055., 4445555., 4519295.,
      4593275., 4667495., 4478555., 4552775., 4627235., 4701935., 3702940.,
      3762700., 3822652., 3882796., 2867661., 2912769., 2958021., 3003417.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   743.,    1091.,   1487.,   1931.,
      1199.,   1643.,   2135.,   2675.,   1530.,   1890.,   2282.,   2706.,
      1173.,   1385.,   1613.,   1857.,   202.,    498.,    826.,    1186.,
      1524.,   2244.,   3028.,   3876.,   4222.,   5494.,   6862.,   8326.,
      6286.,   7750.,   9310.,   10966.,  8350.,   10006.,  11758.,  13606.,
      8052.,   9284.,   10580.,  11940.,  5354.,   6034.,   6746.,   7490.,
      2511.,   3339.,   4215.,   5139.,   8238.,   10086.,  12030.,  14070.,
      17565.,  20625.,  23829.,  27177.,  22389.,  25737.,  29229.,  32865.,
      27213.,  30849.,  34629.,  38553.,  23406.,  26022.,  28734.,  31542.,
      14463.,  15867.,  17319.,  18819.,  8631.,   9939.,   11295.,  12699.,
      22398.,  25206.,  28110.,  31110.,  41685.,  46185.,  50829.,  55617.,
      46509.,  51297.,  56229.,  61305.,  51333.,  56409.,  61629.,  66993.,
      41406.,  44982.,  48654.,  52422.,  24423.,  26307.,  28239.,  30219.,
      14751.,  16539.,  18375.,  20259.,  36558.,  40326.,  44190.,  48150.,
      65805.,  71745.,  77829.,  84057.,  70629.,  76857.,  83229.,  89745.,
      75453.,  81969.,  88629.,  95433.,  59406.,  63942.,  68574.,  73302.,
      34383.,  36747.,  39159.,  41619.,  20266.,  21714.,  23194.,  24706.,
      46260.,  49284.,  52372.,  55524.,  78238.,  82966.,  87790.,  92710.,
      82606.,  87526.,  92542.,  97654.,  86974.,  92086.,  97294.,  102598.,
      65076.,  68612.,  72212.,  75876.,  36170.,  38002.,  39866.,  41762.,
      15989.,  16841.,  17709.,  18593.,  35354.,  37122.,  38922.,  40754.,
      58223.,  60971.,  63767.,  66611.,  60983.,  63827.,  66719.,  69659.,
      63743.,  66683.,  69671.,  72707.,  46554.,  48578.,  50634.,  52722.,
      25349.,  26393.,  27453.,  28529.,  221.,    529.,    853.,    1193.,
      1642.,   2322.,   3034.,   3778.,   4391.,   5507.,   6671.,   7883.,
      8303.,   9515.,   10775.,  12083.,  12215.,  13523.,  14879.,  16283.,
      10026.,  10962.,  11930.,  12930.,  5997.,   6497.,   7013.,   7545.,
      6394.,   7266.,   8170.,   9106.,   16212.,  18084.,  20020.,  22020.,
      29710.,  32710.,  35806.,  38998.,  38686.,  41878.,  45166.,  48550.,
      47662.,  51046.,  54526.,  58102.,  36564.,  38948.,  41396.,  43908.,
      20762.,  22018.,  23306.,  24626.,  20439.,  22131.,  23871.,  25659.,
      47550.,  51126.,  54798.,  58566.,  81717.,  87369.,  93165.,  99105.,
      96909.,  102849., 108933., 115161., 112101., 118329., 124701., 131217.,
      83454.,  87798.,  92238.,  96774.,  46215.,  48483.,  50799.,  53163.,
      43839.,  46011.,  48231.,  50499.,  96270.,  100806., 105438., 110166.,
      157677., 164769., 172005., 179385., 172869., 180249., 187773., 195441.,
      188061., 195729., 203541., 211497., 136014., 141318., 146718., 152214.,
      73455.,  76203.,  78999.,  81843.,  67239.,  69891.,  72591.,  75339.,
      144990., 150486., 156078., 161766., 233637., 242169., 250845., 259665.,
      248829., 257649., 266613., 275721., 264021., 273129., 282381., 291777.,
      188574., 194838., 201198., 207654., 100695., 103923., 107199., 110523.,
      61018.,  63042.,  65098.,  67186.,  130068., 134244., 138484., 142788.,
      207406., 213862., 220414., 227062., 218686., 225334., 232078., 238918.,
      229966., 236806., 243742., 250774., 162708., 167396., 172148., 176964.,
      86138.,  88546.,  90986.,  93458.,  39245.,  40385.,  41541.,  42713.,
      83018.,  85362.,  87738.,  90146.,  131447., 135059., 138719., 142427.,
      137663., 141371., 145127., 148931., 143879., 147683., 151535., 155435.,
      101130., 103730., 106362., 109026., 53213.,  54545.,  55893.,  57257.,
      437.,    1033.,   1645.,   2273.,   3226.,   4482.,   5770.,   7090.,
      8495.,   10475.,  12503.,  14579.,  15863.,  17939.,  20063.,  22235.,
      23231.,  25403.,  27623.,  29891.,  18522.,  20034.,  21578.,  23154.,
      10821.,  11609.,  12413.,  13233.,  12586.,  14034.,  15514.,  17026.,
      30900.,  33924.,  37012.,  40164.,  55198.,  59926.,  64750.,  69670.,
      71086.,  76006.,  81022.,  86134.,  86974.,  92086.,  97294.,  102598.,
      65076.,  68612.,  72212.,  75876.,  36170.,  38002.,  39866.,  41762.,
      38367.,  40923.,  43527.,  46179.,  86862.,  92166.,  97566.,  103062.,
      145869., 154113., 162501., 171033., 171429., 179961., 188637., 197457.,
      196989., 205809., 214773., 223881., 143502., 149574., 155742., 162006.,
      77967.,  81099.,  84279.,  87507.,  79047.,  82083.,  85167.,  88299.,
      170142., 176406., 182766., 189222., 273669., 283353., 293181., 303153.,
      299229., 309201., 319317., 329577., 324789., 335049., 345453., 356001.,
      230622., 237654., 244782., 252006., 122487., 126099., 129759., 133467.,
      119727., 123243., 126807., 130419., 253422., 260646., 267966., 275382.,
      401469., 412593., 423861., 435273., 427029., 438441., 449997., 461697.,
      452589., 464289., 476133., 488121., 317742., 325734., 333822., 342006.,
      167007., 171099., 175239., 179427., 101770., 104370., 107002., 109666.,
      213876., 219204., 224596., 230052., 336574., 344758., 353038., 361414.,
      354766., 363142., 371614., 380182., 372958., 381526., 390190., 398950.,
      260340., 266180., 272084., 278052., 136106., 139090., 142106., 145154.,
      62501.,  63929.,  65373.,  66833.,  130682., 133602., 136554., 139538.,
      204671., 209147., 213671., 218243., 214343., 218915., 223535., 228203.,
      224015., 228683., 233399., 238163., 155706., 158882., 162090., 165330.,
      81077.,  82697.,  84333.,  85985.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,   275166.,   309870.,   345726.,   405992.,   453800.,
      503144.,   554024.,   617410.,   681010.,   746530.,   813970.,
      727330.,   794770.,   864130.,   935410.,   837250.,   908530.,
      981730.,   1056850.,  794600.,   854696.,   916328.,   979496.,
      692622.,   739998.,   788526.,   838206.,   694120.,   757288.,
      821992.,   888232.,   1086432.,  1174752.,  1265120.,  1357536.,
      1566040.,  1681560.,  1799640.,  1920280.,  1763800.,  1884440.,
      2007640.,  2133400.,  1961560.,  2087320.,  2215640.,  2346520.,
      1784800.,  1889504.,  1996256.,  2105056.,  1504360.,  1585960.,
      1669096.,  1753768.,  1511810.,  1613810.,  1717730.,  1823570.,
      2278360.,  2419480.,  2563160.,  2709400.,  3184750.,  3367550.,
      3553550.,  3742750.,  3495950.,  3685150.,  3877550.,  4073150.,
      3807150.,  4002750.,  4201550.,  4403550.,  3376600.,  3538200.,
      3702360.,  3869080.,  2785730.,  2910770.,  3037730.,  3166610.,
      2711330.,  2840210.,  2971010.,  3103730.,  3949400.,  4126360.,
      4305880.,  4487960.,  5363150.,  5590750.,  5821550.,  6055550.,
      5674350.,  5908350.,  6145550.,  6385950.,  5985550.,  6225950.,
      6469550.,  6716350.,  5191000.,  5388440.,  5588440.,  5791000.,
      4200290.,  4352210.,  4506050.,  4661810.,  3910850.,  4066610.,
      4224290.,  4383890.,  5620440.,  5833240.,  6048600.,  6266520.,
      7541550.,  7813950.,  8089550.,  8368350.,  7852750.,  8131550.,
      8413550.,  8698750.,  8163950.,  8449150.,  8737550.,  9029150.,
      7005400.,  7238680.,  7474520.,  7712920.,  5614850.,  5793650.,
      5974370.,  6157010.,  4934248.,  5077288.,  5221864.,  5367976.,
      6952928.,  7147744.,  7344608.,  7543520.,  9165400.,  9414040.,
      9665240.,  9919000.,  9465560.,  9719320.,  9975640.,  10234520.,
      9765720.,  10024600., 10286040., 10550040., 8241120.,  8452320.,
      8665568.,  8880864.,  6506344.,  6667816.,  6830824.,  6995368.,
      5162382.,  5283486.,  5405742.,  5529150.,  7200488.,  7365032.,
      7531112.,  7698728.,  9402370.,  9611890.,  9823330.,  10036690.,
      9665890.,  9879250.,  10094530., 10311730., 9929410.,  10146610.,
      10365730., 10586770., 8301800.,  8478632.,  8657000.,  8836904.,
      6498126.,  6633054.,  6769134.,  6906366.,  2935662.,  3049342.,
      3164174.,  3280158.,  4186472.,  4335656.,  4486376.,  4638632.,
      5569314.,  5755538.,  5943682.,  6133746.,  5406850.,  5580530.,
      5756130.,  5933650.,  5516770.,  5694290.,  5873730.,  6055090.,
      4708200.,  4853288.,  4999912.,  5148072.,  3755310.,  3866430.,
      3978702.,  4092126.,  4937448.,  5069224.,  5202536.,  5337384.,
      6792672.,  6967008.,  7143392.,  7321824.,  8804824.,  9023768.,
      9245272.,  9469336.,  8402520.,  8610200.,  8820440.,  9033240.,
      8600280.,  8813080.,  9028440.,  9246360.,  7235040.,  7409376.,
      7585760.,  7764192.,  5696488.,  5830312.,  5965672.,  6102568.,
      7074018.,  7233106.,  7394114.,  7557042.,  9603160.,  9814936.,
      10029272., 10246168., 12326414., 12593438., 12863662., 13137086.,
      11709870., 11966910., 12227150., 12490590., 12021070., 12284510.,
      12551150., 12820990., 10056280., 10272152., 10490584., 10711576.,
      7876898.,  8042642.,  8210306.,  8379890.,  5424770.,  5561586.,
      5700322.,  5840978.,  7235544.,  7417624.,  7602264.,  7789464.,
      9210734.,  9440638.,  9673742.,  9910046.,  8266510.,  8486430.,
      8709550.,  8935870.,  8577710.,  8804030.,  9033550.,  9266270.,
      7242200.,  7428376.,  7617112.,  7808408.,  5721794.,  5865266.,
      6010658.,  6157970.,  2792482.,  2907026.,  3023490.,  3141874.,
      3557208.,  3709592.,  3864536.,  4022040.,  4456654.,  4649438.,
      4845422.,  5044606.,  3184750.,  3367550.,  3553550.,  3742750.,
      3495950.,  3685150.,  3877550.,  4073150.,  3117400.,  3273880.,
      3432920.,  3594520.,  2583650.,  2704850.,  2827970.,  2953010.,
      2417128.,  2514088.,  2612584.,  2712616.,  3473888.,  3607264.,
      3742688.,  3880160.,  4663000.,  4834840.,  5009240.,  5186200.,
      4963160.,  5140120.,  5319640.,  5501720.,  5263320.,  5445400.,
      5630040.,  5817240.,  4516320.,  4666080.,  4817888.,  4971744.,
      3620584.,  3735976.,  3852904.,  3971368.,  2928942.,  3015486.,
      3103182.,  3192030.,  4130408.,  4248872.,  4368872.,  4490408.,
      5449570.,  5601490.,  5755330.,  5911090.,  5713090.,  5868850.,
      6026530.,  6186130.,  5976610.,  6136210.,  6297730.,  6461170.,
      5047400.,  5178152.,  5310440.,  5444264.,  3988206.,  4088574.,
      4190094.,  4292766.,  2170638.,  2282526.,  2395566.,  2509758.,
      3186920.,  3339176.,  3492968.,  3648296.,  4354690.,  4548850.,
      4744930.,  4942930.,  4464610.,  4662610.,  4862530.,  5064370.,
      4574530.,  4776370.,  4980130.,  5185810.,  3993320.,  4157864.,
      4323944.,  4491560.,  3248334.,  3374046.,  3500910.,  3628926.,
      4310632.,  4478248.,  4647400.,  4818088.,  6186976.,  6414560.,
      6644192.,  6875872.,  8289880.,  8579480.,  8871640.,  9166360.,
      8487640.,  8782360.,  9079640.,  9379480.,  8685400.,  8985240.,
      9287640.,  9592600.,  7442400.,  7686368.,  7932384.,  8180448.,
      5956456.,  6142504.,  6330088.,  6519208.,  7327810.,  7543986.,
      7762082.,  7982098.,  10308824., 10591256., 10876248., 11163800.,
      13538222., 13889470., 14243918., 14601566., 13642574., 13983838.,
      14328302., 14675966., 13681390., 14012670., 14347150., 14684830.,
      11493080., 11763224., 12035928., 12311192., 9035906.,  9242354.,
      9450722.,  9661010.,  7972322.,  8166226.,  8362050.,  8559794.,
      10890328., 11143064., 11398360., 11656216., 14027022., 14341150.,
      14658478., 14979006., 13803694., 14107838., 14415182., 14725726.,
      13514830., 13808990., 14106350., 14406910., 11300440., 11540888.,
      11783896., 12029464., 8846882.,  9031058.,  9217154.,  9405170.,
      7633794.,  7805426.,  7978978.,  8154450.,  10161112., 10384152.,
      10609752., 10837912., 12877422., 13154430., 13434638., 13718046.,
      12326414., 12593438., 12863662., 13137086., 11709870., 11966910.,
      12227150., 12490590., 9797080.,  10007832., 10221144., 10437016.,
      7674818.,  7836722.,  8000546.,  8166290.,  6242664.,  6375464.,
      6509800.,  6645672.,  7986144.,  8156384.,  8328672.,  8503008.,
      9866072.,  10075800., 10288088., 10502936., 8976344.,  9174808.,
      9375832.,  9579416.,  8021080.,  8208280.,  8398040.,  8590360.,
      6730720.,  6884576.,  7040480.,  7198432.,  5287528.,  5405992.,
      5525992.,  5647528.,  3534030.,  3618782.,  3704686.,  3791742.,
      4029928.,  4135080.,  4241768.,  4349992.,  4597442.,  4724530.,
      4853538.,  4984466.,  3343394.,  3457938.,  3574402.,  3692786.,
      2023810.,  2125810.,  2229730.,  2335570.,  1793000.,  1877672.,
      1963880.,  2051624.,  1478286.,  1544094.,  1611054.,  1679166.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    5626.,    8362.,
      11482.,   14986.,   9178.,    12682.,   16570.,   20842.,   11900.,
      14748.,   17852.,   21212.,   9182.,    10862.,   12670.,   14606.,
      1340.,    3676.,    6268.,    9116.,    11512.,   17208.,   23416.,
      30136.,   32564.,   42644.,   53492.,   65108.,   48884.,   60500.,
      72884.,   86036.,   65204.,   78356.,   92276.,   106964.,  63224.,
      73016.,   83320.,   94136.,   42172.,   47580.,   53244.,   59164.,
      19290.,   25866.,   32826.,   40170.,   64116.,   78804.,   94260.,
      110484.,  137550.,  161886.,  187374.,  214014.,  175854.,  202494.,
      230286.,  259230.,  214158.,  243102.,  273198.,  304446.,  184692.,
      205524.,  227124.,  249492.,  114330.,  125514.,  137082.,  149034.,
      67770.,   78186.,   88986.,   100170.,  176436.,  198804.,  221940.,
      245844.,  329070.,  364926.,  401934.,  440094.,  367374.,  405534.,
      444846.,  485310.,  405678.,  446142.,  487758.,  530526.,  327732.,
      356244.,  385524.,  415572.,  193530.,  208554.,  223962.,  239754.,
      116250.,  130506.,  145146.,  160170.,  288756.,  318804.,  349620.,
      381204.,  520590.,  567966.,  616494.,  666174.,  558894.,  608574.,
      659406.,  711390.,  597198.,  649182.,  702318.,  756606.,  470772.,
      506964.,  543924.,  581652.,  272730.,  291594.,  310842.,  330474.,
      160700.,  172252.,  184060.,  196124.,  367096.,  391224.,  415864.,
      441016.,  621236.,  658964.,  697460.,  736724.,  655988.,  695252.,
      735284.,  776084.,  690740.,  731540.,  773108.,  815444.,  517112.,
      545336.,  574072.,  603320.,  287548.,  302172.,  317052.,  332188.,
      127070.,  133870.,  140798.,  147854.,  281084.,  295196.,  309564.,
      324188.,  463066.,  485002.,  507322.,  530026.,  485050.,  507754.,
      530842.,  554314.,  507034.,  530506.,  554362.,  578602.,  370428.,
      386588.,  403004.,  419676.,  201758.,  210094.,  218558.,  227150.,
      1470.,    3918.,    6494.,    9198.,    12476.,   17884.,   23548.,
      29468.,   34042.,   42922.,   52186.,   61834.,   65242.,   74890.,
      84922.,   95338.,   96442.,   106858.,  117658.,  128842.,  79292.,
      86748.,   94460.,   102428.,  47486.,   51470.,   55582.,   59822.,
      50300.,   57244.,   64444.,   71900.,   127864.,  142776.,  158200.,
      174136.,  234740.,  258644.,  283316.,  308756.,  306356.,  331796.,
      358004.,  384980.,  377972.,  404948.,  432692.,  461204.,  290168.,
      309176.,  328696.,  348728.,  164860.,  174876.,  185148.,  195676.,
      161850.,  175338.,  189210.,  203466.,  376884.,  405396.,  434676.,
      464724.,  648174.,  693246.,  739470.,  786846.,  769422.,  816798.,
      865326.,  915006.,  890670.,  940350.,  991182.,  1043166., 663348.,
      698004.,  733428.,  769620.,  367482.,  385578.,  404058.,  422922.,
      348570.,  365898.,  383610.,  401706.,  765684.,  801876.,  838836.,
      876564.,  1254414., 1311006., 1368750., 1427646., 1375662., 1434558.,
      1494606., 1555806., 1496910., 1558110., 1620462., 1683966., 1082868.,
      1125204., 1168308., 1212180., 584922.,  606858.,  629178.,  651882.,
      535290.,  556458.,  578010.,  599946.,  1154484., 1198356., 1242996.,
      1288404., 1860654., 1928766., 1998030., 2068446., 1981902., 2052318.,
      2123886., 2196606., 2103150., 2175870., 2249742., 2324766., 1502388.,
      1552404., 1603188., 1654740., 802362.,  828138.,  854298.,  880842.,
      486140.,  502300.,  518716.,  535388.,  1036408., 1069752., 1103608.,
      1137976., 1652852., 1704404., 1756724., 1809812., 1742900., 1795988.,
      1849844., 1904468., 1832948., 1887572., 1942964., 1999124., 1297016.,
      1334456., 1372408., 1410872., 686716.,  705948.,  725436.,  745180.,
      312830.,  321934.,  331166.,  340526.,  661820.,  680540.,  699516.,
      718748.,  1047994., 1076842., 1106074., 1135690., 1097626., 1127242.,
      1157242., 1187626., 1147258., 1177642., 1208410., 1239562., 806460.,
      827228.,  848252.,  869532.,  424382.,  435022.,  445790.,  456686.,
      2910.,    7662.,    12542.,   17550.,   24572.,   34588.,   44860.,
      55388.,   66010.,   81802.,   97978.,   114538.,  124858.,  141418.,
      158362.,  175690.,  183706.,  201034.,  218746.,  236842.,  146684.,
      158748.,  171068.,  183644.,  85790.,   92078.,   98494.,   105038.,
      99260.,   110812.,  122620.,  134684.,  244216.,  268344.,  292984.,
      318136.,  436916.,  474644.,  513140.,  552404.,  563828.,  603092.,
      643124.,  683924.,  690740.,  731540.,  773108.,  815444.,  517112.,
      545336.,  574072.,  603320.,  287548.,  302172.,  317052.,  332188.,
      304410.,  324810.,  345594.,  366762.,  689652.,  731988.,  775092.,
      818964.,  1158798., 1224606., 1291566., 1359678., 1362990., 1431102.,
      1500366., 1570782., 1567182., 1637598., 1709166., 1781886., 1142004.,
      1190484., 1239732., 1289748., 620634.,  645642.,  671034.,  696810.,
      629370.,  653610.,  678234.,  703242.,  1354932., 1404948., 1455732.,
      1507284., 2179758., 2257086., 2335566., 2415198., 2383950., 2463582.,
      2544366., 2626302., 2588142., 2670078., 2753166., 2837406., 1838004.,
      1894164., 1951092., 2008788., 976314.,  1005162., 1034394., 1064010.,
      954330.,  982410.,  1010874., 1039722., 2020212., 2077908., 2136372.,
      2195604., 3200718., 3289566., 3379566., 3470718., 3404910., 3496062.,
      3588366., 3681822., 3609102., 3702558., 3797166., 3892926., 2534004.,
      2597844., 2662452., 2727828., 1331994., 1364682., 1397754., 1431210.,
      811580.,  832348.,  853372.,  874652.,  1705720., 1748280., 1791352.,
      1834936., 2684468., 2749844., 2815988., 2882900., 2829812., 2896724.,
      2964404., 3032852., 2975156., 3043604., 3112820., 3182804., 2076920.,
      2123576., 2170744., 2218424., 1085884., 1109724., 1133820., 1158172.,
      498590.,  509998.,  521534.,  533198.,  1042556., 1065884., 1089468.,
      1113308., 1632922., 1668682., 1704826., 1741354., 1710202., 1746730.,
      1783642., 1820938., 1787482., 1824778., 1862458., 1900522., 1242492.,
      1267868., 1293500., 1319388., 647006.,  659950.,  673022.,  686222.};
  const std::array<int, 4> in_shape = {{3, 7, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,   610.,   890.,   1010.,  1130.,  1250.,  1144.,  969.,   988.,
      1500.,  2110.,  2320.,  2530.,  2740.,  2436.,  2014.,  2030.,  3000.,
      4125.,  4450.,  4775.,  5100.,  4450.,  3620.,  3470.,  5000.,  6725.,
      7050.,  7375.,  7700.,  6610.,  5300.,  4910.,  7000.,  9325.,  9650.,
      9975.,  10300., 8770.,  6980.,  6004.,  8420.,  11050., 11360., 11670.,
      11980., 10060., 7906.,  6180.,  8590.,  11180., 11450., 11720., 11990.,
      9988.,  7791.,  3912.,  5650.,  7610.,  7730.,  7850.,  7970.,  6856.,
      5505.,  7372.,  10460., 13870., 14080., 14290., 14500., 12292., 9742.,
      12110., 17000., 22325., 22650., 22975., 23300., 19570., 15380., 13550.,
      19000., 24925., 25250., 25575., 25900., 21730., 17060., 14990., 21000.,
      27525., 27850., 28175., 28500., 23890., 18740., 15748., 21860., 28410.,
      28720., 29030., 29340., 24396., 18994., 14748., 20350., 26300., 26570.,
      26840., 27110., 22420., 17367., 7440.,  10690., 14330., 14450., 14570.,
      14690., 12568., 10041., 13756., 19420., 25630., 25840., 26050., 26260.,
      22148., 17470., 22190., 31000., 40525., 40850., 41175., 41500., 34690.,
      27140., 23630., 33000., 43125., 43450., 43775., 44100., 36850., 28820.,
      25070., 35000., 45725., 46050., 46375., 46700., 39010., 30500., 25492.,
      35300., 45770., 46080., 46390., 46700., 38732., 30082., 23316., 32110.,
      41420., 41690., 41960., 42230., 34852., 26943.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   20.,   30.,   34.,   31.,   20.,   11.,   35.,
      74.,   130.,  166.,  161.,  133.,  80.,   50.,   133.,  252.,  410.,
      488.,  441.,  346.,  200.,  125.,  298.,  522.,  800.,  878.,  756.,
      571.,  320.,  200.,  463.,  792.,  1190., 1268., 1071., 796.,  440.,
      249.,  549.,  902.,  1310., 1378., 1127., 815.,  440.,  189.,  408.,
      658.,  940.,  982.,  790.,  563.,  300.,  13.,   40.,   82.,   140.,
      198.,  178.,  139.,  80.,   95.,   227.,  398.,  610.,  742.,  629.,
      469.,  260.,  266.,  601.,  1008., 1490., 1712., 1413., 1030., 560.,
      521.,  1126., 1818., 2600., 2822., 2268., 1615., 860.,  776.,  1651.,
      2628., 3710., 3932., 3123., 2200., 1160., 693.,  1461., 2306., 3230.,
      3394., 2675., 1871., 980.,  441.,  924.,  1450., 2020., 2110., 1654.,
      1151., 600.,  25.,   76.,   154.,  260.,  366.,  322.,  247.,  140.,
      179.,  419.,  722.,  1090., 1318., 1097., 805.,  440.,  482.,  1069.,
      1764., 2570., 2936., 2385., 1714., 920.,  917.,  1954., 3114., 4400.,
      4766., 3780., 2659., 1400., 1352., 2839., 4464., 6230., 6596., 5175.,
      3604., 1880., 1137., 2373., 3710., 5150., 5410., 4223., 2927., 1520.,
      693.,  1440., 2242., 3100., 3238., 2518., 1739., 900.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,   4460.,   6565.,   7495.,   8425.,   9355.,   8612.,   7329.,
      7352.,   11232.,  15880.,  17520.,  19160.,  20800.,  18560.,  15392.,
      15355.,  22780.,  31425.,  33975.,  36525.,  39075.,  34180.,  27865.,
      26635.,  38460.,  51825.,  54375.,  56925.,  59475.,  51140.,  41065.,
      37915.,  54140.,  72225.,  74775.,  77325.,  79875.,  68100.,  54265.,
      46784.,  65664.,  86240.,  88680.,  91120.,  93560.,  78624.,  61832.,
      48387.,  67292.,  87625.,  89755.,  91885.,  94015.,  78356.,  61149.,
      29991.,  43436.,  58645.,  59575.,  60505.,  61435.,  52964.,  42609.,
      57080.,  81120.,  107720., 109360., 111000., 112640., 95616.,  75872.,
      94315.,  132540., 174225., 176775., 179325., 181875., 152900., 120265.,
      105595., 148220., 194625., 197175., 199725., 202275., 169860., 133465.,
      116875., 163900., 215025., 217575., 220125., 222675., 186820., 146665.,
      123392., 171392., 222880., 225320., 227760., 230200., 191520., 149192.,
      115923., 160028., 206905., 209035., 211165., 213295., 176468., 136749.,
      57207.,  82412.,  110725., 111655., 112585., 113515., 97316.,  77889.,
      106808., 151008., 199560., 201200., 202840., 204480., 172672., 136352.,
      173275., 242300., 317025., 319575., 322125., 324675., 271620., 212665.,
      184555., 257980., 337425., 339975., 342525., 345075., 288580., 225865.,
      195835., 273660., 357825., 360375., 362925., 365475., 305540., 239065.,
      200000., 277120., 359520., 361960., 364400., 366840., 304416., 236552.,
      183459., 252764., 326185., 328315., 330445., 332575., 274580., 212349.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,    124.,   196.,   233.,   218.,   143.,   64.,
      224.,   496.,   896.,   1168.,  1156.,  968.,   588.,   337.,   926.,
      1791.,  2956.,  3556.,  3249.,  2570.,  1495.,  907.,   2186.,  3861.,
      5956.,  6556.,  5679.,  4310.,  2425.,  1477.,  3446.,  5931.,  8956.,
      9556.,  8109.,  6050.,  3355.,  1892.,  4184.,  6892.,  10032., 10560.,
      8656.,  6272.,  3392.,  1453.,  3142.,  5075.,  7260.,  7588.,  6113.,
      4362.,  2327.,  77.,    262.,   563.,   988.,   1444.,  1313.,  1034.,
      599.,   688.,   1664.,  2944.,  4544.,  5584.,  4756.,  3560.,  1980.,
      1993.,  4526.,  7623.,  11308., 13060., 10809., 7898.,  4303.,  4003.,
      8666.,  14013., 20068., 21820., 17559., 12518., 6673.,  6013.,  12806.,
      20403., 28828., 30580., 24309., 17138., 9043.,  5396.,  11384., 17980.,
      25200., 26496., 20896., 14624., 7664.,  3445.,  7222.,  11339., 15804.,
      16516., 12953., 9018.,  4703.,  149.,   502.,   1067.,  1852.,  2692.,
      2393.,  1850.,  1055.,  1312.,  3104.,  5392.,  8192.,  10000., 8356.,
      6152.,  3372.,  3649.,  8126.,  13455., 19660., 22564., 18369., 13226.,
      7111.,  7099.,  15146., 24165., 34180., 37084., 29439., 20726., 10921.,
      10549., 22166., 34875., 48700., 51604., 40509., 28226., 14731., 8900.,
      18584., 29068., 40368., 42432., 33136., 22976., 11936., 5437.,  11302.,
      17603., 24348., 25444., 19793., 13674., 7079.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,   34024.,   50330.,   57650.,   64970.,   72290.,   66760.,
      56958.,   56632.,   86816.,   123080.,  136040.,  149000.,  161960.,
      144800.,  120280.,  119330.,  177400.,  245150.,  265350.,  285550.,
      305750.,  267800.,  218570.,  208610.,  301560.,  406750.,  426950.,
      447150.,  467350.,  402200.,  323210.,  297890.,  425720.,  568350.,
      588550.,  608750.,  628950.,  536600.,  427850.,  369304.,  518560.,
      681320.,  700680.,  720040.,  739400.,  621600.,  489016.,  382902.,
      532648.,  693770.,  710690.,  727610.,  744530.,  620680.,  484494.,
      234726.,  340456.,  460250.,  467570.,  474890.,  482210.,  416200.,
      335166.,  449080.,  638752.,  848840.,  861800.,  874760.,  887720.,
      754080.,  598744.,  744290.,  1046520., 1376350., 1396550., 1416750.,
      1436950., 1208600., 951050.,  833570.,  1170680., 1537950., 1558150.,
      1578350., 1598550., 1343000., 1055690., 922850.,  1294840., 1699550.,
      1719750., 1739950., 1760150., 1477400., 1160330., 976792.,  1357216.,
      1765480., 1784840., 1804200., 1823560., 1517600., 1182520., 919158.,
      1269160., 1641290., 1658210., 1675130., 1692050., 1400200., 1085262.,
      448422.,  646888.,  870170.,  877490.,  884810.,  892130.,  765640.,
      613374.,  841528.,  1190688., 1574600., 1587560., 1600520., 1613480.,
      1363360., 1077208., 1369250., 1915640., 2507550., 2527750., 2547950.,
      2568150., 2149400., 1683530., 1458530., 2039800., 2669150., 2689350.,
      2709550., 2729750., 2283800., 1788170., 1547810., 2163960., 2830750.,
      2850950., 2871150., 2891350., 2418200., 1892810., 1584280., 2195872.,
      2849640., 2869000., 2888360., 2907720., 2413600., 1876024., 1455414.,
      2005672., 2588810., 2605730., 2622650., 2639570., 2179720., 1686030.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,    140.,    394.,    856.,    1400.,   1714.,   1628.,   1078.,
      420.,   1576.,   3596.,   6608.,   8720.,   8732.,   7368.,   4500.,
      2450.,  6868.,   13446.,  22376.,  27080.,  24894.,  19780.,  11546.,
      6890.,  16708.,  29646.,  45896.,  50600.,  43974.,  33460.,  18866.,
      11330., 26548.,  45846.,  69416.,  74120.,  63054.,  47140.,  26186.,
      14740., 32648.,  53852.,  78480.,  82640.,  67820.,  49192.,  26628.,
      11390., 24652.,  39850.,  57048.,  59640.,  48082.,  34332.,  18326.,
      510.,   1868.,   4138.,   7384.,   11000.,  10066.,  7964.,   4630.,
      5220.,  12712.,  22604.,  35024.,  43280.,  36956.,  27720.,  15444.,
      15410., 35092.,  59238.,  88040.,  101960., 84510.,  61828.,  33722.,
      31370., 67972.,  109998., 157640., 171560., 138150., 98548.,  52562.,
      47330., 100852., 160758., 227240., 241160., 191790., 135268., 71402.,
      42580., 89864.,  141980., 199056., 209360., 165164., 115624., 60612.,
      27230., 57100.,  89674.,  125016., 130680., 102514., 71388.,  37238.,
      990.,   3596.,   7882.,   13912.,  20600.,  18418.,  14300.,  8182.,
      10020., 23848.,  41612.,  63440.,  77840.,  65180.,  48072.,  26388.,
      28370., 63316.,  105030., 153704., 176840., 144126., 103876., 55898.,
      55850., 119236., 190350., 269384., 292520., 232326., 163636., 86258.,
      83330., 175156., 275670., 385064., 408200., 320526., 223396., 116618.,
      70420., 147080., 230108., 319632., 336080., 262508., 182056., 94596.,
      43070., 89548.,  139498., 192984., 201720., 156946., 108444., 56150.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,   1536.,   2020.,   2440.,   3005.,   3560.,   3455.,   4040.,
      3905.,   4520.,   4355.,   5000.,   4036.,   4576.,   3453.,   3876.,
      3400.,   3952.,   5232.,   6000.,   7440.,   8440.,   8240.,   9280.,
      9040.,   10120.,  9840.,   10960.,  8816.,   9744.,   7336.,   8056.,
      7235.,   8120.,   10780.,  12000.,  14925.,  16500.,  16175.,  17800.,
      17425.,  19100.,  18675.,  20400.,  16380.,  17800.,  13385.,  14480.,
      12755.,  13880.,  18460.,  20000.,  24925.,  26900.,  26175.,  28200.,
      27425.,  29500.,  28675.,  30800.,  24700.,  26440.,  19865.,  21200.,
      18275.,  19640.,  26140.,  28000.,  34925.,  37300.,  36175.,  38600.,
      37425.,  39900.,  38675.,  41200.,  33020.,  35080.,  26345.,  27920.,
      22768.,  24016.,  31984.,  33680.,  42040.,  44200.,  43240.,  45440.,
      44440.,  46680.,  45640.,  47920.,  38384.,  40240.,  30208.,  31624.,
      23667.,  24720.,  32932.,  34360.,  42905.,  44720.,  43955.,  45800.,
      45005.,  46880.,  46055.,  47960.,  38404.,  39952.,  29985.,  31164.,
      14343.,  15648.,  20836.,  22600.,  28205.,  30440.,  28655.,  30920.,
      29105.,  31400.,  29555.,  31880.,  25540.,  27424.,  20589.,  22020.,
      27592.,  29488.,  39280.,  41840.,  52240.,  55480.,  53040.,  56320.,
      53840.,  57160.,  54640.,  58000.,  46448.,  49168.,  36904.,  38968.,
      45875.,  48440.,  64540.,  68000.,  84925.,  89300.,  86175.,  90600.,
      87425.,  91900.,  88675.,  93200.,  74620.,  78280.,  58745.,  61520.,
      51395.,  54200.,  72220.,  76000.,  94925.,  99700.,  96175.,  101000.,
      97425.,  102300., 98675.,  103600., 82940.,  86920.,  65225.,  68240.,
      56915.,  59960.,  79900.,  84000.,  104925., 110100., 106175., 111400.,
      107425., 112700., 108675., 114000., 91260.,  95560.,  71705.,  74960.,
      60400.,  62992.,  83952.,  87440.,  109240., 113640., 110440., 114880.,
      111640., 116120., 112840., 117360., 93936.,  97584.,  73216.,  75976.,
      56931.,  58992.,  78628.,  81400.,  101705., 105200., 102755., 106280.,
      103805., 107360., 104855., 108440., 86788.,  89680.,  67281.,  69468.,
      27447.,  29760.,  39652.,  42760.,  53405.,  57320.,  53855.,  57800.,
      54305.,  58280.,  54755.,  58760.,  47044.,  50272.,  37725.,  40164.,
      51784.,  55024.,  73328.,  77680.,  97040.,  102520., 97840.,  103360.,
      98640.,  104200., 99440.,  105040., 84080.,  88592.,  66472.,  69880.,
      84515.,  88760.,  118300., 124000., 154925., 162100., 156175., 163400.,
      157425., 164700., 158675., 166000., 132860., 138760., 104105., 108560.,
      90035.,  94520.,  125980., 132000., 164925., 172500., 166175., 173800.,
      167425., 175100., 168675., 176400., 141180., 147400., 110585., 115280.,
      95555.,  100280., 133660., 140000., 174925., 182900., 176175., 184200.,
      177425., 185500., 178675., 186800., 149500., 156040., 117065., 122000.,
      98032.,  101968., 135920., 141200., 176440., 183080., 177640., 184320.,
      178840., 185560., 180040., 186800., 149488., 154928., 116224., 120328.,
      90195.,  93264.,  124324., 128440., 160505., 165680., 161555., 166760.,
      162605., 167840., 163655., 168920., 135172., 139408., 104577., 107772.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     6.,     16.,    19.,    40.,    44.,    80.,    76.,
      120.,   97.,    136.,   94.,    124.,   63.,    80.,    20.,    44.,
      84.,    140.,   200.,   296.,   376.,   520.,   504.,   664.,   512.,
      644.,   436.,   532.,   268.,   320.,   137.,   200.,   394.,   532.,
      783.,   1008.,  1316.,  1640.,  1604.,  1952.,  1485.,  1764.,  1186.,
      1384.,  695.,   800.,   407.,   500.,   994.,   1192.,  1773.,  2088.,
      2756.,  3200.,  3044.,  3512.,  2655.,  3024.,  2026.,  2284.,  1145.,
      1280.,  677.,   800.,   1594.,  1852.,  2763.,  3168.,  4196.,  4760.,
      4484.,  5072.,  3825.,  4284.,  2866.,  3184.,  1595.,  1760.,  896.,
      996.,   1988.,  2196.,  3284.,  3608.,  4792.,  5240.,  5048.,  5512.,
      4148.,  4508.,  3012.,  3260.,  1632.,  1760.,  697.,   756.,   1510.,
      1632.,  2443.,  2632.,  3500.,  3760.,  3660.,  3928.,  2953.,  3160.,
      2110.,  2252.,  1127.,  1200.,  25.,    52.,    102.,   160.,   235.,
      328.,   428.,   560.,   652.,   792.,   601.,   712.,   478.,   556.,
      279.,   320.,   308.,   380.,   756.,   908.,   1352.,  1592.,  2104.,
      2440.,  2616.,  2968.,  2240.,  2516.,  1684.,  1876.,  940.,   1040.,
      929.,   1064.,  2122.,  2404.,  3591.,  4032.,  5348.,  5960.,  6212.,
      6848.,  5157.,  5652.,  3778.,  4120.,  2063.,  2240.,  1919.,  2084.,
      4162.,  4504.,  6741.,  7272.,  9668.,  10400., 10532., 11288., 8487.,
      9072.,  6058.,  6460.,  3233.,  3440.,  2909.,  3104.,  6202.,  6604.,
      9891.,  10512., 13988., 14840., 14852., 15728., 11817., 12492., 8338.,
      8800.,  4403.,  4640.,  2624.,  2772.,  5540.,  5844.,  8756.,  9224.,
      12280., 12920., 12920., 13576., 10196., 10700., 7140.,  7484.,  3744.,
      3920.,  1681.,  1764.,  3526.,  3696.,  5539.,  5800.,  7724.,  8080.,
      8076.,  8440.,  6337.,  6616.,  4414.,  4604.,  2303.,  2400.,  49.,
      100.,   198.,   304.,   451.,   616.,   812.,   1040.,  1228.,  1464.,
      1105.,  1288.,  862.,   988.,   495.,   560.,   596.,   716.,   1428.,
      1676.,  2504.,  2888.,  3832.,  4360.,  4728.,  5272.,  3968.,  4388.,
      2932.,  3220.,  1612.,  1760.,  1721.,  1928.,  3850.,  4276.,  6399.,
      7056.,  9380.,  10280., 10820., 11744., 8829.,  9540.,  6370.,  6856.,
      3431.,  3680.,  3431.,  3668.,  7330.,  7816.,  11709., 12456., 16580.,
      17600., 18020., 19064., 14319., 15120., 10090., 10636., 5321.,  5600.,
      5141.,  5408.,  10810., 11356., 17019., 17856., 23780., 24920., 25220.,
      26384., 19809., 20700., 13810., 14416., 7211.,  7520.,  4352.,  4548.,
      9092.,  9492.,  14228., 14840., 19768., 20600., 20792., 21640., 16244.,
      16892., 11268., 11708., 5856.,  6080.,  2665.,  2772.,  5542.,  5760.,
      8635.,  8968.,  11948., 12400., 12492., 12952., 9721.,  10072., 6718.,
      6956.,  3479.,  3600.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,    11685.,   15356.,   18668.,   22975.,   27355.,   26515.,
      31135.,   30055.,   34915.,   33595.,   38695.,   31244.,   35516.,
      26805.,   30153.,   26132.,   30500.,   40368.,   46448.,   57580.,
      65500.,   63900.,   72140.,   70220.,   78780.,   76540.,   85420.,
      68720.,   76080.,   57284.,   62996.,   56155.,   63175.,   83860.,
      93540.,   116325.,  128825.,  126225.,  139125.,  136125.,  149425.,
      146025.,  159725.,  128260.,  139540.,  104935.,  113635.,  99835.,
      108775.,  144660.,  156900.,  195525.,  211225.,  205425.,  221525.,
      215325.,  231825.,  225225.,  242125.,  194180.,  208020.,  156295.,
      166915.,  143515.,  154375.,  205460.,  220260.,  274725.,  293625.,
      284625.,  303925.,  294525.,  314225.,  304425.,  324525.,  260100.,
      276500.,  207655.,  220195.,  179684.,  189620.,  252528.,  266032.,
      332060.,  349260.,  341580.,  359100.,  351100.,  368940.,  360620.,
      378780.,  303408.,  318192.,  238868.,  250148.,  187257.,  195645.,
      260636.,  272012.,  339655.,  354115.,  347995.,  362695.,  356335.,
      371275.,  364675.,  379855.,  304172.,  316508.,  237549.,  246945.,
      112161.,  122565.,  163196.,  177260.,  221215.,  239035.,  224755.,
      242815.,  228295.,  246595.,  231835.,  250375.,  200588.,  215612.,
      161877.,  173289.,  216980.,  232100.,  309168.,  329584.,  411500.,
      437340.,  417820.,  443980.,  424140.,  450620.,  430460.,  457260.,
      366192.,  387888.,  291140.,  307604.,  361915.,  382375.,  509460.,
      537060.,  670725.,  705625.,  680625.,  715925.,  690525.,  726225.,
      700425.,  736525.,  589700.,  618900.,  464455.,  486595.,  405595.,
      427975.,  570260.,  600420.,  749925.,  788025.,  759825.,  798325.,
      769725.,  808625.,  779625.,  818925.,  655620.,  687380.,  515815.,
      539875.,  449275.,  473575.,  631060.,  663780.,  829125.,  870425.,
      839025.,  880725.,  848925.,  891025.,  858825.,  901325.,  721540.,
      755860.,  567175.,  593155.,  478052.,  498740.,  664688.,  692528.,
      865180.,  900300.,  874700.,  910140.,  884220.,  919980.,  893740.,
      929820.,  744240.,  773360.,  580244.,  602276.,  451353.,  467805.,
      623516.,  645644.,  806695.,  834595.,  815035.,  843175.,  823375.,
      851755.,  831715.,  860335.,  688556.,  711644.,  533901.,  551361.,
      214977.,  233445.,  311036.,  335852.,  419455.,  450715.,  422995.,
      454495.,  426535.,  458275.,  430075.,  462055.,  369932.,  395708.,
      296949.,  316425.,  407828.,  433700.,  577968.,  612720.,  765420.,
      809180.,  771740.,  815820.,  778060.,  822460.,  784380.,  829100.,
      663664.,  699696.,  524996.,  552212.,  667675.,  701575.,  935060.,
      980580.,  1225125., 1282425., 1235025., 1292725., 1244925., 1303025.,
      1254825., 1313325., 1051140., 1098260., 823975.,  859555.,  711355.,
      747175.,  995860.,  1043940., 1304325., 1364825., 1314225., 1375125.,
      1324125., 1385425., 1334025., 1395725., 1117060., 1166740., 875335.,
      912835.,  755035.,  792775.,  1056660., 1107300., 1383525., 1447225.,
      1393425., 1457525., 1403325., 1467825., 1413225., 1478125., 1182980.,
      1235220., 926695.,  966115.,  776420.,  807860.,  1076848., 1119024.,
      1398300., 1451340., 1407820., 1461180., 1417340., 1471020., 1426860.,
      1480860., 1185072., 1228528., 921620.,  954404.,  715449.,  739965.,
      986396.,  1019276., 1273735., 1315075., 1282075., 1323655., 1290415.,
      1332235., 1298755., 1340815., 1072940., 1106780., 830253.,  855777.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     34.,     106.,    119.,    275.,    292.,    564.,
      532.,    868.,    707.,    1007.,   698.,    930.,    473.,    605.,
      118.,    302.,    572.,    1004.,   1426.,   2170.,   2744.,   3864.,
      3736.,   4984.,   3850.,   4882.,   3308.,   4060.,   2046.,   2454.,
      979.,    1471.,   2894.,   3974.,   5841.,   7605.,   9916.,   12460.,
      12172.,  14908.,  11349.,  13545.,  9110.,   10670.,  5359.,   6187.,
      3079.,   3811.,   7574.,   9134.,   13581.,  16065.,  21196.,  24700.,
      23452.,  27148.,  20529.,  23445.,  15710.,  17750.,  8899.,   9967.,
      5179.,   6151.,   12254.,  14294.,  21321.,  24525.,  32476.,  36940.,
      34732.,  39388.,  29709.,  33345.,  22310.,  24830.,  12439.,  13747.,
      6974.,   7766.,   15500.,  17148.,  25642.,  28210.,  37464.,  41016.,
      39480.,  43160.,  32482.,  35338.,  23612.,  25580.,  12806.,  13822.,
      5461.,   5929.,   11842.,  12810.,  19175.,  20675.,  27492.,  29556.,
      28756.,  30884.,  23219.,  24863.,  16602.,  17730.,  8873.,   9453.,
      149.,    361.,    706.,    1162.,   1703.,   2435.,   3172.,   4212.,
      4948.,   6052.,   4595.,   5471.,   3674.,   4290.,   2153.,   2477.,
      2326.,   2894.,   5756.,   6956.,   10354.,  12250.,  16184.,  18840.,
      20248.,  23032.,  17386.,  19570.,  13100.,  14620.,  7326.,   8118.,
      7171.,   8239.,   16430.,  18662.,  27873.,  31365.,  41596.,  46444.,
      48460.,  53500.,  40293.,  44217.,  29558.,  32270.,  16159.,  17563.,
      15031.,  16339.,  32630.,  35342.,  52893.,  57105.,  75916.,  81724.,
      82780.,  88780.,  66753.,  71397.,  47678.,  50870.,  25459.,  27103.,
      22891.,  24439.,  48830.,  52022.,  77913.,  82845.,  110236., 117004.,
      117100., 124060., 93213.,  98577.,  65798.,  69470.,  34759.,  36643.,
      20702.,  21878.,  43724.,  46140.,  69130.,  72850.,  96984.,  102072.,
      102072., 107288., 80578.,  84586.,  56444.,  59180.,  29606.,  31006.,
      13285.,  13945.,  27874.,  29226.,  43799.,  45875.,  61092.,  63924.,
      63892.,  66788.,  50147.,  52367.,  34938.,  36450.,  18233.,  19005.,
      293.,    697.,    1378.,   2218.,   3287.,   4595.,   6052.,   7860.,
      9364.,   11236.,  8483.,   9935.,   6650.,   7650.,   3833.,   4349.,
      4534.,   5486.,   10940.,  12908.,  19282.,  22330.,  29624.,  33816.,
      36760.,  41080.,  30922.,  34258.,  22892.,  25180.,  12606.,  13782.,
      13363.,  15007.,  29966.,  33350.,  49905.,  55125.,  73276.,  80428.,
      84748.,  92092.,  69237.,  74889.,  50006.,  53870.,  26959.,  28939.,
      26983.,  28867.,  57686.,  61550.,  92205.,  98145.,  130636., 138748.,
      142108., 150412., 112977., 119349., 79646.,  83990.,  42019.,  44239.,
      40603.,  42727.,  85406.,  89750.,  134505., 141165., 187996., 197068.,
      199468., 208732., 156717., 163809., 109286., 114110., 57079.,  59539.,
      34430.,  35990.,  71948.,  75132.,  112618., 117490., 156504., 163128.,
      164664., 171416., 128674., 133834., 89276.,  92780.,  46406.,  48190.,
      21109.,  21961.,  43906.,  45642.,  68423.,  71075.,  94692.,  98292.,
      99028.,  102692., 77075.,  79871.,  53274.,  55170.,  27593.,  28557.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,    91086.,    119656.,   145960.,   179570.,   214370.,
      207650.,   244370.,   235730.,   274370.,   263810.,   304370.,
      245800.,   279784.,   211182.,   237822.,   204808.,   239560.,
      317024.,   365408.,   452920.,   515960.,   503160.,   568760.,
      553400.,   621560.,   603640.,   674360.,   542560.,   601184.,
      452680.,   498184.,   442370.,   498290.,   661400.,   738520.,
      918350.,   1017950.,  997150.,   1099950.,  1075950.,  1181950.,
      1154750.,  1263950.,  1015000.,  1104920.,  830930.,   900290.,
      789890.,   861170.,   1145240.,  1242840.,  1548750.,  1673950.,
      1627550.,  1755950.,  1706350.,  1837950.,  1785150.,  1919950.,
      1539800.,  1650200.,  1239890.,  1324610.,  1137410.,  1224050.,
      1629080.,  1747160.,  2179150.,  2329950.,  2257950.,  2411950.,
      2336750.,  2493950.,  2415550.,  2575950.,  2064600.,  2195480.,
      1648850.,  1748930.,  1427656.,  1506952.,  2006880.,  2114656.,
      2639480.,  2776760.,  2715320.,  2855160.,  2791160.,  2933560.,
      2867000.,  3011960.,  2412640.,  2530656.,  1899784.,  1989832.,
      1489758.,  1556718.,  2073832.,  2164648.,  2702930.,  2818370.,
      2769410.,  2886770.,  2835890.,  2955170.,  2902370.,  3023570.,
      2421160.,  2519656.,  1891086.,  1966110.,  886974.,   970062.,
      1291624.,  1403944.,  1752050.,  1894370.,  1780130.,  1924370.,
      1808210.,  1954370.,  1836290.,  1984370.,  1589800.,  1709800.,
      1283694.,  1374846.,  1720840.,  1841608.,  2453088.,  2616160.,
      3266360.,  3472760.,  3316600.,  3525560.,  3366840.,  3578360.,
      3417080.,  3631160.,  2908000.,  3081312.,  2312776.,  2444296.,
      2875010.,  3038450.,  4048280.,  4268760.,  5331150.,  5609950.,
      5409950.,  5691950.,  5488750.,  5773950.,  5567550.,  5855950.,
      4688600.,  4921880.,  3693650.,  3870530.,  3222530.,  3401330.,
      4532120.,  4773080.,  5961550.,  6265950.,  6040350.,  6347950.,
      6119150.,  6429950.,  6197950.,  6511950.,  5213400.,  5467160.,
      4102610.,  4294850.,  3570050.,  3764210.,  5015960.,  5277400.,
      6591950.,  6921950.,  6670750.,  7003950.,  6749550.,  7085950.,
      6828350.,  7167950.,  5738200.,  6012440.,  4511570.,  4719170.,
      3803848.,  3969160.,  5289824.,  5512288.,  6886520.,  7167160.,
      6962360.,  7245560.,  7038200.,  7323960.,  7114040.,  7402360.,
      5924960.,  6157664.,  4620040.,  4796104.,  3594462.,  3725934.,
      4966120.,  5142952.,  6425810.,  6648770.,  6492290.,  6717170.,
      6558770.,  6785570.,  6625250.,  6853970.,  5485480.,  5669992.,
      4253838.,  4393374.,  1701438.,  1849038.,  2463592.,  2661928.,
      3324530.,  3574370.,  3352610.,  3604370.,  3380690.,  3634370.,
      3408770.,  3664370.,  2933800.,  3139816.,  2356206.,  2511870.,
      3236872.,  3443656.,  4589152.,  4866912.,  6079800.,  6429560.,
      6130040.,  6482360.,  6180280.,  6535160.,  6230520.,  6587960.,
      5273440.,  5561440.,  4172872.,  4390408.,  5307650.,  5578610.,
      7435160.,  7799000.,  9743950.,  10201950., 9822750.,  10283950.,
      9901550.,  10365950., 9980350.,  10447950., 8362200.,  8738840.,
      6556370.,  6840770.,  5655170.,  5941490.,  7919000.,  8303320.,
      10374350., 10857950., 10453150., 10939950., 10531950., 11021950.,
      10610750., 11103950., 8887000.,  9284120.,  6965330.,  7265090.,
      6002690.,  6304370.,  8402840.,  8807640.,  11004750., 11513950.,
      11083550., 11595950., 11162350., 11677950., 11241150., 11759950.,
      9411800.,  9829400.,  7374290.,  7689410.,  6180040.,  6431368.,
      8572768.,  8909920.,  11133560., 11557560., 11209400., 11635960.,
      11285240., 11714360., 11361080., 11792760., 9437280.,  9784672.,
      7340296.,  7602376.,  5699166.,  5895150.,  7858408.,  8121256.,
      10148690., 10479170., 10215170., 10547570., 10281650., 10615970.,
      10348130., 10684370., 8549800.,  8820328.,  6616590.,  6820638.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     220.,     764.,     826.,     2026.,    2104.,
      4216.,    3960.,    6584.,    5386.,    7738.,    5372.,    7196.,
      3662.,    4702.,    780.,     2220.,    4184.,    7576.,    10724.,
      16580.,   20912.,   29744.,   28720.,   38576.,   29828.,   37988.,
      25752.,   31704.,   15980.,   19212.,   7370.,    11258.,   22132.,
      30676.,   45054.,   59022.,   76904.,   97064.,   94760.,   116456.,
      88686.,   106110.,  71380.,   83764.,   42074.,   48650.,   23930.,
      29738.,   59092.,   71476.,   106254.,  125982.,  166184.,  194024.,
      184040.,  213416.,  161406.,  184590.,  123700.,  139924.,  70154.,
      78650.,   40490.,   48218.,   96052.,   112276.,  167454.,  192942.,
      255464.,  290984.,  273320.,  310376.,  234126.,  263070.,  176020.,
      196084.,  98234.,   108650.,  55020.,   61324.,   122392.,  135512.,
      202628.,  223076.,  296240.,  324528.,  312240.,  341552.,  257060.,
      279812.,  186968.,  202648.,  101452.,  109548.,  43230.,   46958.,
      93788.,   101500.,  151930.,  163882.,  217912.,  234360.,  227960.,
      244920.,  184138.,  197242.,  131708.,  140700.,  70414.,   75038.,
      990.,     2670.,    5212.,    8828.,    12922.,   18730.,   24376.,
      32632.,   38520.,   47288.,   35914.,   42874.,   28796.,   33692.,
      16910.,   19486.,   18060.,   22572.,   44888.,   54424.,   80996.,
      96068.,   126896.,  148016.,  159280.,  181424.,  136964.,  154340.,
      103320.,  115416.,  57836.,   64140.,   56330.,   64826.,   129268.,
      147028.,  219582.,  247374.,  328040.,  366632.,  382760.,  422888.,
      318510.,  349758.,  233812.,  255412.,  127898.,  139082.,  118970.,
      129386.,  258388.,  279988.,  419022.,  452574.,  601640.,  647912.,
      656360.,  704168.,  529470.,  566478.,  378292.,  403732.,  202058.,
      215162.,  181610.,  193946.,  387508.,  412948.,  618462.,  657774.,
      875240.,  929192.,  929960.,  985448.,  740430.,  783198.,  522772.,
      552052.,  276218.,  291242.,  164460.,  173836.,  347416.,  366680.,
      549380.,  579044.,  770864.,  811440.,  811440.,  853040.,  640676.,
      672644.,  448856.,  470680.,  235468.,  246636.,  105630.,  110894.,
      221660.,  232444.,  348346.,  364906.,  485944.,  508536.,  508280.,
      531384.,  398986.,  416698.,  278012.,  290076.,  145102.,  151262.,
      1950.,    5166.,    10204.,   16892.,   25018.,   35434.,   46648.,
      61048.,   73080.,   87992.,   66442.,   78010.,   52220.,   60188.,
      30158.,   34270.,   35340.,   42924.,   85592.,   101272.,  151268.,
      175556.,  232880.,  266288.,  289840.,  324272.,  244100.,  270692.,
      180888.,  199128.,  99692.,   109068.,  105290.,  118394.,  236404.,
      263380.,  394110.,  435726.,  579176.,  636200.,  670760.,  729320.,
      548334.,  593406.,  396244.,  427060.,  213722.,  229514.,  214010.,
      229034.,  457684.,  488500.,  731790.,  779166.,  1037096., 1101800.,
      1128680., 1194920., 897534.,  948366.,  632884.,  667540.,  333962.,
      351674.,  322730.,  339674.,  678964.,  713620.,  1069470., 1122606.,
      1495016., 1567400., 1586600., 1660520., 1246734., 1303326., 869524.,
      908020.,  454202.,  473834.,  273900.,  286348.,  572440.,  597848.,
      896132.,  935012.,  1245488., 1298352., 1310640., 1364528., 1024292.,
      1065476., 710744.,  738712.,  369484.,  383724.,  168030.,  174830.,
      349532.,  363388.,  544762.,  565930.,  753976.,  782712.,  788600.,
      817848.,  613834.,  636154.,  424316.,  439452.,  219790.,  227486.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      70415.,  73100.,  75815.,  78560.,  100900., 104560., 108260., 112000.,
      135025., 139700., 144425., 149200., 139925., 144700., 149525., 154400.,
      144825., 149700., 154625., 159600., 149725., 154700., 159725., 164800.,
      128020., 132080., 136180., 140320., 102275., 105380., 108515., 111680.,
      88612.,  91072.,  93556.,  96064.,  124592., 127936., 131312., 134720.,
      163900., 168160., 172460., 176800., 168620., 172960., 177340., 181760.,
      173340., 177760., 182220., 186720., 178060., 182560., 187100., 191680.,
      149872., 153536., 157232., 160960., 118036., 120832., 123652., 126496.,
      92589.,  94668.,  96765.,  98880.,  128908., 131728., 134572., 137440.,
      168035., 171620., 175235., 178880., 172175., 175820., 179495., 183200.,
      176315., 180020., 183755., 187520., 180455., 184220., 188015., 191840.,
      150556., 153616., 156700., 159808., 117609., 119940., 122289., 124656.,
      54789.,  57372.,  59973.,  62592.,  79852.,  83344.,  86860.,  90400.,
      108395., 112820., 117275., 121760., 110135., 114620., 119135., 123680.,
      111875., 116420., 120995., 125600., 113615., 118220., 122855., 127520.,
      98428.,  102160., 105916., 109696., 79521.,  82356.,  85209.,  88080.,
      106612., 110368., 114148., 117952., 152048., 157120., 162224., 167360.,
      202540., 208960., 215420., 221920., 205660., 212160., 218700., 225280.,
      208780., 215360., 221980., 228640., 211900., 218560., 225260., 232000.,
      180400., 185792., 191216., 196672., 143524., 147616., 151732., 155872.,
      178415., 183500., 188615., 193760., 251300., 258160., 265060., 272000.,
      331025., 339700., 348425., 357200., 335925., 344700., 353525., 362400.,
      340825., 349700., 358625., 367600., 345725., 354700., 363725., 372800.,
      291220., 298480., 305780., 313120., 229475., 234980., 240515., 246080.,
      200015., 205580., 211175., 216800., 281380., 288880., 296420., 304000.,
      370225., 379700., 389225., 398800., 375125., 384700., 394325., 404000.,
      380025., 389700., 399425., 409200., 384925., 394700., 404525., 414400.,
      323860., 331760., 339700., 347680., 254915., 260900., 266915., 272960.,
      221615., 227660., 233735., 239840., 311460., 319600., 327780., 336000.,
      409425., 419700., 430025., 440400., 414325., 424700., 435125., 445600.,
      419225., 429700., 440225., 450800., 424125., 434700., 445325., 456000.,
      356500., 365040., 373620., 382240., 280355., 286820., 293315., 299840.,
      236452., 241600., 246772., 251968., 328880., 335808., 342768., 349760.,
      428220., 436960., 445740., 454560., 432940., 441760., 450620., 459520.,
      437660., 446560., 455500., 464480., 442380., 451360., 460380., 469440.,
      368496., 375744., 383024., 390336., 287380., 292864., 298372., 303904.,
      223629., 227724., 231837., 235968., 309004., 314512., 320044., 325600.,
      399875., 406820., 413795., 420800., 404015., 411020., 418055., 425120.,
      408155., 415220., 422315., 429440., 412295., 419420., 426575., 433760.,
      341404., 347152., 352924., 358720., 264777., 269124., 273489., 277872.,
      105189., 109788., 114405., 119040., 152428., 158608., 164812., 171040.,
      205835., 213620., 221435., 229280., 207575., 215420., 223295., 231200.,
      209315., 217220., 225155., 233120., 211055., 219020., 227015., 235040.,
      181756., 188176., 194620., 201088., 146049., 150900., 155769., 160656.,
      200692., 207136., 213604., 220096., 284656., 293312., 302000., 310720.,
      377260., 388160., 399100., 410080., 380380., 391360., 402380., 413440.,
      383500., 394560., 405660., 416800., 386620., 397760., 408940., 420160.,
      327344., 336320., 345328., 354368., 259108., 265888., 272692., 279520.,
      329615., 338060., 346535., 355040., 461860., 473200., 484580., 496000.,
      605425., 619700., 634025., 648400., 610325., 624700., 639125., 653600.,
      615225., 629700., 644225., 658800., 620125., 634700., 649325., 664000.,
      519700., 531440., 543220., 555040., 407555., 416420., 425315., 434240.,
      351215., 360140., 369095., 378080., 491940., 503920., 515940., 528000.,
      644625., 659700., 674825., 690000., 649525., 664700., 679925., 695200.,
      654425., 669700., 685025., 700400., 659325., 674700., 690125., 705600.,
      552340., 564720., 577140., 589600., 432995., 442340., 451715., 461120.,
      372815., 382220., 391655., 401120., 522020., 534640., 547300., 560000.,
      683825., 699700., 715625., 731600., 688725., 704700., 720725., 736800.,
      693625., 709700., 725825., 742000., 698525., 714700., 730925., 747200.,
      584980., 598000., 611060., 624160., 458435., 468260., 478115., 488000.,
      384292., 392128., 399988., 407872., 533168., 543680., 554224., 564800.,
      692540., 705760., 719020., 732320., 697260., 710560., 723900., 737280.,
      701980., 715360., 728780., 742240., 706700., 720160., 733660., 747200.,
      587120., 597952., 608816., 619712., 456724., 464896., 473092., 481312.,
      354669., 360780., 366909., 373056., 489100., 497296., 505516., 513760.,
      631715., 642020., 652355., 662720., 635855., 646220., 656615., 667040.,
      639995., 650420., 660875., 671360., 644135., 654620., 665135., 675680.,
      532252., 540688., 549148., 557632., 411945., 418308., 424689., 431088.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,      4.,      9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,     115.,    160.,   116.,   176.,   244.,   320.,   228.,   304.,
      388.,    480.,    319.,   388.,   463.,   544.,   322.,   376.,   434.,
      496.,    221.,    252.,   285.,   320.,   38.,    80.,    126.,   176.,
      236.,    336.,    444.,   560.,   626.,   800.,   986.,   1184.,  1240.,
      1504.,   1784.,   2080.,  1720.,  2016.,  2328.,  2656.,  1802.,  2048.,
      2306.,   2576.,   1564.,  1744.,  1932.,  2128.,  974.,   1072.,  1174.,
      1280.,   431.,    548.,   671.,   800.,   1318.,  1576.,  1846.,  2128.,
      2709.,   3132.,   3573.,  4032.,  4652.,  5264.,  5900.,  6560.,  5756.,
      6416.,   7100.,   7808.,  5409.,  5940.,  6489.,  7056.,  4366.,  4744.,
      5134.,   5536.,   2579.,  2780.,  2987.,  3200.,  1451.,  1628.,  1811.,
      2000.,   3598.,   3976.,  4366.,  4768.,  6489.,  7092.,  7713.,  8352.,
      10172.,  11024.,  11900., 12800., 11276., 12176., 13100., 14048., 9909.,
      10620.,  11349.,  12096., 7606.,  8104.,  8614.,  9136.,  4319.,  4580.,
      4847.,   5120.,   2471.,  2708.,  2951.,  3200.,  5878.,  6376.,  6886.,
      7408.,   10269.,  11052., 11853., 12672., 15692., 16784., 17900., 19040.,
      16796.,  17936.,  19100., 20288., 14409., 15300., 16209., 17136., 10846.,
      11464.,  12094.,  12736., 6059.,  6380.,  6707.,  7040.,  3390.,  3584.,
      3782.,   3984.,   7548.,  7952.,  8364.,  8784.,  12506., 13136., 13778.,
      14432.,  18296.,  19168., 20056., 20960., 19288., 20192., 21112., 22048.,
      15890.,  16592.,  17306., 18032., 11564., 12048., 12540., 13040., 6278.,
      6528.,   6782.,   7040.,  2673.,  2788.,  2905.,  3024.,  5802.,  6040.,
      6282.,   6528.,   9403.,  9772.,  10147., 10528., 13492., 14000., 14516.,
      15040.,  14116.,  14640., 15172., 15712., 11407., 11812., 12223., 12640.,
      8162.,   8440.,   8722.,  9008.,  4365.,  4508.,  4653.,  4800.,  49.,
      100.,    153.,    208.,   298.,   408.,   522.,   640.,   763.,   940.,
      1123.,   1312.,   1460.,  1712.,  1972.,  2240.,  2340.,  2608.,  2884.,
      3168.,   2191.,   2404.,  2623.,  2848.,  1762.,  1912.,  2066.,  2224.,
      1037.,   1116.,   1197.,  1280.,  1094.,  1232.,  1374.,  1520.,  2732.,
      3024.,   3324.,   3632.,  4946.,  5408.,  5882.,  6368.,  7768.,  8416.,
      9080.,   9760.,   9784.,  10464., 11160., 11872., 8426.,  8960.,  9506.,
      10064.,  6364.,   6736.,  7116.,  7504.,  3566.,  3760.,  3958.,  4160.,
      3455.,   3716.,   3983.,  4256.,  7942.,  8488.,  9046.,  9616.,  13509.,
      14364.,  15237.,  16128., 20204., 21392., 22604., 23840., 23612., 24848.,
      26108.,  27392.,  19665., 20628., 21609., 22608., 14446., 15112., 15790.,
      16480.,  7907.,   8252.,  8603.,  8960.,  7355.,  7676.,  8003.,  8336.,
      15982.,  16648.,  17326., 18016., 25929., 26964., 28017., 29088., 37244.,
      38672.,  40124.,  41600., 40652., 42128., 43628., 45152., 32805., 33948.,
      35109.,  36288.,  23446., 24232., 25030., 25840., 12527., 12932., 13343.,
      13760.,  11255.,  11636., 12023., 12416., 24022., 24808., 25606., 26416.,
      38349.,  39564.,  40797., 42048., 54284., 55952., 57644., 59360., 57692.,
      59408.,  61148.,  62912., 45945., 47268., 48609., 49968., 32446., 33352.,
      34270.,  35200.,  17147., 17612., 18083., 18560., 10206., 10496., 10790.,
      11088.,  21564.,  22160., 22764., 23376., 34106., 35024., 35954., 36896.,
      47864.,  49120.,  50392., 51680., 50392., 51680., 52984., 54304., 39794.,
      40784.,  41786.,  42800., 27884., 28560., 29244., 29936., 14630., 14976.,
      15326.,  15680.,  6561.,  6724.,  6889.,  7056.,  13770., 14104., 14442.,
      14784.,  21643.,  22156., 22675., 23200., 30196., 30896., 31604., 32320.,
      31588.,  32304.,  33028., 33760., 24799., 25348., 25903., 26464., 17282.,
      17656.,  18034.,  18416., 9021.,  9212.,  9405.,  9600.,  97.,    196.,
      297.,    400.,    586.,   792.,   1002.,  1216.,  1483.,  1804.,  2131.,
      2464.,   2804.,   3248.,  3700.,  4160.,  4452.,  4912.,  5380.,  5856.,
      4063.,   4420.,   4783.,  5152.,  3202.,  3448.,  3698.,  3952.,  1853.,
      1980.,   2109.,   2240.,  2150.,  2384.,  2622.,  2864.,  5228.,  5712.,
      6204.,   6704.,   9266.,  10016., 10778., 11552., 14296., 15328., 16376.,
      17440.,  17848.,  18912., 19992., 21088., 15050., 15872., 16706., 17552.,
      11164.,  11728.,  12300., 12880., 6158.,  6448.,  6742.,  7040.,  6479.,
      6884.,   7295.,   7712.,  14566., 15400., 16246., 17104., 24309., 25596.,
      26901.,  28224.,  35756., 37520., 39308., 41120., 41468., 43280., 45116.,
      46976.,  33921.,  35316., 36729., 38160., 24526., 25480., 26446., 27424.,
      13235.,  13724.,  14219., 14720., 13259., 13724., 14195., 14672., 28366.,
      29320.,  30286.,  31264., 45369., 46836., 48321., 49824., 64316., 66320.,
      68348.,  70400.,  70028., 72080., 74156., 76256., 55701., 57276., 58869.,
      60480.,  39286.,  40360., 41446., 42544., 20735., 21284., 21839., 22400.,
      20039.,  20564.,  21095., 21632., 42166., 43240., 44326., 45424., 66429.,
      68076.,  69741.,  71424., 92876., 95120., 97388., 99680., 98588., 100880.,
      103196., 105536., 77481., 79236., 81009., 82800., 54046., 55240., 56446.,
      57664.,  28235.,  28844., 29459., 30080., 17022., 17408., 17798., 18192.,
      35580.,  36368.,  37164., 37968., 55706., 56912., 58130., 59360., 77432.,
      79072.,  80728.,  82400., 81496., 83168., 84856., 86560., 63698., 64976.,
      66266.,  67568.,  44204., 45072., 45948., 46832., 22982., 23424., 23870.,
      24320.,  10449.,  10660., 10873., 11088., 21738., 22168., 22602., 23040.,
      33883.,  34540.,  35203., 35872., 46900., 47792., 48692., 49600., 49060.,
      49968.,  50884.,  51808., 38191., 38884., 39583., 40288., 26402., 26872.,
      27346.,  27824.,  13677., 13916., 14157., 14400.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  557995.,  579415.,  601075.,  622975.,  799940.,
      829140.,  858660.,  888500.,  1070925., 1108225., 1145925., 1184025.,
      1109925., 1148025., 1186525., 1225425., 1148925., 1187825., 1227125.,
      1266825., 1187925., 1227625., 1267725., 1308225., 1016100., 1048500.,
      1081220., 1114260., 812035.,  836815.,  861835.,  887095.,  704012.,
      723644.,  743468.,  763484.,  990096.,  1016784., 1043728., 1070928.,
      1302740., 1336740., 1371060., 1405700., 1340340., 1374980., 1409940.,
      1445220., 1377940., 1413220., 1448820., 1484740., 1415540., 1451460.,
      1487700., 1524260., 1191696., 1220944., 1250448., 1280208., 938732.,
      961052.,  983564.,  1006268., 736581.,  753177.,  769917.,  786801.,
      1025660., 1048172., 1070876., 1093772., 1337155., 1365775., 1394635.,
      1423735., 1370155., 1399255., 1428595., 1458175., 1403155., 1432735.,
      1462555., 1492615., 1436155., 1466215., 1496515., 1527055., 1198364.,
      1222796., 1247420., 1272236., 936237.,  954849.,  973605.,  992505.,
      433173.,  453801.,  474573.,  495489.,  631868.,  659756.,  687836.,
      716108.,  858355.,  893695.,  929275.,  965095.,  872155.,  907975.,
      944035.,  980335.,  885955.,  922255.,  958795.,  995575.,  899755.,
      936535.,  973555.,  1010815., 779996.,  809804.,  839804.,  869996.,
      630525.,  653169.,  675957.,  698889.,  845420.,  875420.,  905612.,
      935996.,  1206288., 1246800., 1287568., 1328592., 1607540., 1658820.,
      1710420., 1762340., 1632340., 1684260., 1736500., 1789060., 1657140.,
      1709700., 1762580., 1815780., 1681940., 1735140., 1788660., 1842500.,
      1432464., 1475536., 1518864., 1562448., 1140044., 1172732., 1205612.,
      1238684., 1417195., 1457815., 1498675., 1539775., 1996740., 2051540.,
      2106660., 2162100., 2630925., 2700225., 2769925., 2840025., 2669925.,
      2740025., 2810525., 2881425., 2708925., 2779825., 2851125., 2922825.,
      2747925., 2819625., 2891725., 2964225., 2315300., 2373300., 2431620.,
      2490260., 1824835., 1868815., 1913035., 1957495., 1589035., 1633495.,
      1678195., 1723135., 2236100., 2296020., 2356260., 2416820., 2942925.,
      3018625., 3094725., 3171225., 2981925., 3058425., 3135325., 3212625.,
      3020925., 3098225., 3175925., 3254025., 3059925., 3138025., 3216525.,
      3295425., 2575140., 2638260., 2701700., 2765460., 2027395., 2075215.,
      2123275., 2171575., 1760875., 1809175., 1857715., 1906495., 2475460.,
      2540500., 2605860., 2671540., 3254925., 3337025., 3419525., 3502425.,
      3293925., 3376825., 3460125., 3543825., 3332925., 3416625., 3500725.,
      3585225., 3371925., 3456425., 3541325., 3626625., 2834980., 2903220.,
      2971780., 3040660., 2229955., 2281615., 2333515., 2385655., 1881356.,
      1922492., 1963820., 2005340., 2617232., 2672592., 2728208., 2784080.,
      3408340., 3478180., 3548340., 3618820., 3445940., 3516420., 3587220.,
      3658340., 3483540., 3554660., 3626100., 3697860., 3521140., 3592900.,
      3664980., 3737380., 2933520., 2991440., 3049616., 3108048., 2288108.,
      2331932., 2375948., 2420156., 1780869., 1813593., 1846461., 1879473.,
      2461052., 2505068., 2549276., 2593676., 3185155., 3240655., 3296395.,
      3352375., 3218155., 3274135., 3330355., 3386815., 3251155., 3307615.,
      3364315., 3421255., 3284155., 3341095., 3398275., 3455695., 2719772.,
      2765708., 2811836., 2858156., 2109549., 2144289., 2179173., 2214201.,
      832341.,  869097.,  905997.,  943041.,  1207100., 1256492., 1306076.,
      1355852., 1631155., 1693375., 1755835., 1818535., 1644955., 1707655.,
      1770595., 1833775., 1658755., 1721935., 1785355., 1849015., 1672555.,
      1736215., 1800115., 1864255., 1441244., 1492556., 1544060., 1595756.,
      1158717., 1197489., 1236405., 1275465., 1592684., 1644188., 1695884.,
      1747772., 2259984., 2329168., 2398608., 2468304., 2996340., 3083460.,
      3170900., 3258660., 3021140., 3108900., 3196980., 3285380., 3045940.,
      3134340., 3223060., 3312100., 3070740., 3159780., 3249140., 3338820.,
      2600848., 2672592., 2744592., 2816848., 2059340., 2113532., 2167916.,
      2222492., 2620075., 2687575., 2755315., 2823295., 3672260., 3762900.,
      3853860., 3945140., 4814925., 4929025., 5043525., 5158425., 4853925.,
      4968825., 5084125., 5199825., 4892925., 5008625., 5124725., 5241225.,
      4931925., 5048425., 5165325., 5282625., 4134180., 4228020., 4322180.,
      4416660., 3242755., 3313615., 3384715., 3456055., 2791915., 2863255.,
      2934835., 3006655., 3911620., 4007380., 4103460., 4199860., 5126925.,
      5247425., 5368325., 5489625., 5165925., 5287225., 5408925., 5531025.,
      5204925., 5327025., 5449525., 5572425., 5243925., 5366825., 5490125.,
      5613825., 4394020., 4492980., 4592260., 4691860., 3445315., 3520015.,
      3594955., 3670135., 2963755., 3038935., 3114355., 3190015., 4150980.,
      4251860., 4353060., 4454580., 5438925., 5565825., 5693125., 5820825.,
      5477925., 5605625., 5733725., 5862225., 5516925., 5645425., 5774325.,
      5903625., 5555925., 5685225., 5814925., 5945025., 4653860., 4757940.,
      4862340., 4967060., 3647875., 3726415., 3805195., 3884215., 3058700.,
      3121340., 3184172., 3247196., 4244368., 4328400., 4412688., 4497232.,
      5513940., 5619620., 5725620., 5831940., 5551540., 5657860., 5764500.,
      5871460., 5589140., 5696100., 5803380., 5910980., 5626740., 5734340.,
      5842260., 5950500., 4675344., 4761936., 4848784., 4935888., 3637484.,
      3702812., 3768332., 3834044., 2825157., 2874009., 2923005., 2972145.,
      3896444., 3961964., 4027676., 4093580., 5033155., 5115535., 5198155.,
      5281015., 5066155., 5149015., 5232115., 5315455., 5099155., 5182495.,
      5266075., 5349895., 5132155., 5215975., 5300035., 5384335., 4241180.,
      4308620., 4376252., 4444076., 3282861., 3333729., 3384741., 3435897.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   820.,    1284.,   1812.,   2404.,
      1684.,   2276.,   2932.,   3652.,   2423.,   2963.,   3551.,   4187.,
      2474.,   2898.,   3354.,   3842.,   1709.,   1953.,   2213.,   2489.,
      226.,    554.,    914.,    1306.,   1700.,   2484.,   3332.,   4244.,
      4678.,   6046.,   7510.,   9070.,   9416.,   11496.,  13704.,  16040.,
      13192.,  15528.,  17992.,  20584.,  13942.,  15886.,  17926.,  20062.,
      12164.,  13588.,  15076.,  16628.,  7602.,   8378.,   9186.,   10026.,
      3223.,   4147.,   5119.,   6139.,   10046.,  12086.,  14222.,  16454.,
      20853.,  24201.,  27693.,  31329.,  36028.,  40876.,  45916.,  51148.,
      44764.,  49996.,  55420.,  61036.,  42237.,  46449.,  50805.,  55305.,
      34190.,  37190.,  40286.,  43478.,  20239.,  21835.,  23479.,  25171.,
      11263.,  12667.,  14119.,  15619.,  28046.,  31046.,  34142.,  37334.,
      50733.,  55521.,  60453.,  65529.,  79708.,  86476.,  93436.,  100588.,
      88444.,  95596.,  102940., 110476., 77877.,  83529.,  89325.,  95265.,
      59870.,  63830.,  67886.,  72038.,  34039.,  36115.,  38239.,  40411.,
      19303.,  21187.,  23119.,  25099.,  46046.,  50006.,  54062.,  58214.,
      80613.,  86841.,  93213.,  99729.,  123388., 132076., 140956., 150028.,
      132124., 141196., 150460., 159916., 113517., 120609., 127845., 135225.,
      85550.,  90470.,  95486.,  100598., 47839.,  50395.,  52999.,  55651.,
      26738.,  28282.,  29858.,  31466.,  59588.,  62804.,  66084.,  69428.,
      98806.,  103822., 108934., 114142., 144648., 151592., 158664., 165864.,
      152520., 159720., 167048., 174504., 125734., 131326., 137014., 142798.,
      91556.,  95412.,  99332.,  103316., 49730.,  51722.,  53746.,  55802.,
      21157.,  22073.,  23005.,  23953.,  45946.,  47842.,  49770.,  51730.,
      74495.,  77435.,  80423.,  83459.,  106932., 110980., 115092., 119268.,
      111892., 116068., 120308., 124612., 90455.,  93683.,  96959.,  100283.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.,
      293.,    697.,    1117.,   1553.,   2170.,   3042.,   3946.,   4882.,
      5759.,   7163.,   8615.,   10115.,  11188.,  13188.,  15252.,  17380.,
      18196.,  20324.,  22516.,  24772.,  17111.,  18803.,  20543.,  22331.,
      13802.,  14994.,  16218.,  17474.,  8141.,   8769.,   9413.,   10073.,
      8482.,   9578.,   10706.,  11866.,  21284.,  23604.,  25988.,  28436.,
      38662.,  42334.,  46102.,  49966.,  60872.,  66024.,  71304.,  76712.,
      76936.,  82344.,  87880.,  93544.,  66358.,  70606.,  74950.,  79390.,
      50180.,  53140.,  56164.,  59252.,  28146.,  29690.,  31266.,  32874.,
      27127.,  29203.,  31327.,  33499.,  62462.,  66806.,  71246.,  75782.,
      106389., 113193., 120141., 127233., 159292., 168748., 178396., 188236.,
      186460., 196300., 206332., 216556., 155421., 163089., 170901., 178857.,
      114254., 119558., 124958., 130454., 62575.,  65323.,  68119.,  70963.,
      58207.,  60763.,  63367.,  66019.,  126542., 131846., 137246., 142742.,
      205389., 213633., 222021., 230553., 295132., 306508., 318076., 329836.,
      322300., 334060., 346012., 358156., 260181., 269289., 278541., 287937.,
      186014., 192278., 198638., 205094., 99415.,  102643., 105919., 109243.,
      89287.,  92323.,  95407.,  98539.,  190622., 196886., 203246., 209702.,
      304389., 314073., 323901., 333873., 430972., 444268., 457756., 471436.,
      458140., 471820., 485692., 499756., 364941., 375489., 386181., 397017.,
      257774., 264998., 272318., 279734., 136255., 139963., 143719., 147523.,
      81074.,  83386.,  85730.,  88106.,  171332., 176084., 180900., 185780.,
      271030., 278350., 285766., 293278., 380424., 390440., 400584., 410856.,
      400584., 410856., 421256., 431784., 316390., 324286., 332278., 340366.,
      221732., 227124., 232580., 238100., 116354., 119114., 121906., 124730.,
      52165.,  53465.,  54781.,  56113.,  109498., 112162., 114858., 117586.,
      172127., 176219., 180359., 184547., 240180., 245764., 251412., 257124.,
      251284., 256996., 262772., 268612., 197303., 201683., 206111., 210587.,
      137514., 140498., 143514., 146562., 71789.,  73313.,  74853.,  76409.,
      581.,    1369.,   2173.,   2993.,   4282.,   5922.,   7594.,   9298.,
      11231.,  13787.,  16391.,  19043.,  21556.,  25092.,  28692.,  32356.,
      34708.,  38372.,  42100.,  45892.,  31799.,  34643.,  37535.,  40475.,
      25130.,  27090.,  29082.,  31106.,  14573.,  15585.,  16613.,  17657.,
      16738.,  18602.,  20498.,  22426.,  40868.,  44724.,  48644.,  52628.,
      72646.,  78622.,  84694.,  90862.,  112328., 120552., 128904., 137384.,
      140680., 149160., 157768., 166504., 118774., 125326., 131974., 138718.,
      88196.,  92692.,  97252.,  101876., 48690.,  51002.,  53346.,  55722.,
      51031.,  54259.,  57535.,  60859.,  114878., 121526., 128270., 135110.,
      191925., 202185., 212589., 223137., 282556., 296620., 310876., 325324.,
      328156., 342604., 357244., 372076., 268605., 279729., 290997., 302409.,
      194318., 201926., 209630., 217430., 104911., 108811., 112759., 116755.,
      105151., 108859., 112615., 116419., 225038., 232646., 240350., 248150.,
      360045., 371745., 383589., 395577., 510556., 526540., 542716., 559084.,
      556156., 572524., 589084., 605836., 442485., 455049., 467757., 480609.,
      312158., 320726., 329390., 338150., 164791., 169171., 173599., 178075.,
      159271., 163459., 167695., 171979., 335198., 343766., 352430., 361190.,
      528165., 541305., 554589., 568017., 738556., 756460., 774556., 792844.,
      784156., 802444., 820924., 839596., 616365., 630369., 644517., 658809.,
      429998., 439526., 449150., 458870., 224671., 229531., 234439., 239395.,
      135410., 138490., 141602., 144746., 283076., 289364., 295716., 302132.,
      443254., 452878., 462598., 472414., 616200., 629288., 642504., 655848.,
      648648., 661992., 675464., 689064., 507046., 517246., 527542., 537934.,
      351908., 358836., 365828., 372884., 182978., 186506., 190066., 193658.,
      83173.,  84857.,  86557.,  88273.,  173050., 176482., 179946., 183442.,
      269759., 275003., 280295., 285635., 373428., 380548., 387732., 394980.,
      390676., 397924., 405236., 412612., 304151., 309683., 315263., 320891.,
      210282., 214034., 217818., 221634., 108941., 110849., 112773., 114713.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x7x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,   303486.,   340494.,   378654.,   446824.,   497704.,
      550120.,   604072.,   676130.,   743570.,   812930.,   884210.,
      786050.,   857330.,   930530.,   1005650.,  895970.,   971090.,
      1048130.,  1127090.,  1005890.,  1084850.,  1165730.,  1248530.,
      941800.,   1008040.,  1075816.,  1145128.,  812238.,   864222.,
      917358.,   971646.,   776872.,   844648.,   913960.,   984808.,
      1209056.,  1303520.,  1400032.,  1498592.,  1734680.,  1857880.,
      1983640.,  2111960.,  1932440.,  2060760.,  2191640.,  2325080.,
      2130200.,  2263640.,  2399640.,  2538200.,  2327960.,  2466520.,
      2607640.,  2751320.,  2098400.,  2213344.,  2330336.,  2449376.,
      1754920.,  1844200.,  1935016.,  2027368.,  1700930.,  1810610.,
      1922210.,  2035730.,  2551000.,  2702360.,  2856280.,  3012760.,
      3551150.,  3746750.,  3945550.,  4147550.,  3862350.,  4064350.,
      4269550.,  4477950.,  4173550.,  4381950.,  4593550.,  4808350.,
      4484750.,  4699550.,  4917550.,  5138750.,  3949400.,  4126360.,
      4305880.,  4487960.,  3238370.,  3374930.,  3513410.,  3653810.,
      3071810.,  3212210.,  3354530.,  3498770.,  4460760.,  4653080.,
      4847960.,  5045400.,  6040750.,  6287550.,  6537550.,  6790750.,
      6351950.,  6605150.,  6861550.,  7121150.,  6663150.,  6922750.,
      7185550.,  7451550.,  6974350.,  7240350.,  7509550.,  7781950.,
      6023000.,  6240920.,  6461400.,  6684440.,  4855010.,  5022290.,
      5191490.,  5362610.,  4442690.,  4613810.,  4786850.,  4961810.,
      6370520.,  6603800.,  6839640.,  7078040.,  8530350.,  8828350.,
      9129550.,  9433950.,  8841550.,  9145950.,  9453550.,  9764350.,
      9152750.,  9463550.,  9777550.,  10094750., 9463950.,  9781150.,
      10101550., 10425150., 8096600.,  8355480.,  8616920.,  8880920.,
      6471650.,  6669650.,  6869570.,  7071410.,  5612584.,  5769448.,
      5927848.,  6087784.,  7894240.,  8107488.,  8322784.,  8540128.,
      10388120., 10659800., 10934040., 11210840., 10688280., 10965080.,
      11244440., 11526360., 10988440., 11270360., 11554840., 11841880.,
      11288600., 11575640., 11865240., 12157400., 9504480.,  9738208.,
      9973984.,  10211808., 7487656.,  7666024.,  7845928.,  8027368.,
      5876142.,  6008766.,  6142542.,  6277470.,  8182888.,  8362792.,
      8544232.,  8727208.,  10668770., 10897490., 11128130., 11360690.,
      10932290., 11164850., 11399330., 11635730., 11195810., 11432210.,
      11670530., 11910770., 11459330., 11699570., 11941730., 12185810.,
      9562600.,  9757864.,  9954664.,  10153000., 7471374.,  7620126.,
      7770030.,  7921086.,  2007150.,  2073726.,  2141454.,  2210334.,
      2848104.,  2939944.,  3033320.,  3128232.,  3780130.,  3898770.,
      4019330.,  4141810.,  3890050.,  4012530.,  4136930.,  4263250.,
      3999970.,  4126290.,  4254530.,  4384690.,  4109890.,  4240050.,
      4372130.,  4506130.,  3506920.,  3614120.,  3722856.,  3833128.,
      2797518.,  2880222.,  2964078.,  3049086.,  3102376.,  3194728.,
      3288616.,  3384040.,  4375264.,  4502496.,  4631776.,  4763104.,
      5774360.,  5938520.,  6105240.,  6274520.,  5972120.,  6141400.,
      6313240.,  6487640.,  6169880.,  6344280.,  6521240.,  6700760.,
      6367640.,  6547160.,  6729240.,  6913880.,  5395680.,  5543392.,
      5693152.,  5844960.,  4277032.,  4390888.,  4506280.,  4623208.,
      4489538.,  4617650.,  4747682.,  4879634.,  6318296.,  6494232.,
      6672728.,  6853784.,  8321710.,  8548030.,  8777550.,  9010270.,
      8632910.,  8865630.,  9101550.,  9340670.,  8944110.,  9183230.,
      9425550.,  9671070.,  9255310.,  9500830.,  9749550.,  10001470.,
      7815000.,  8016536.,  8220632.,  8427288.,  6174434.,  6329426.,
      6486338.,  6645170.,  1700930.,  1810610.,  1922210.,  2035730.,
      2551000.,  2702360.,  2856280.,  3012760.,  3551150.,  3746750.,
      3945550.,  4147550.,  3862350.,  4064350.,  4269550.,  4477950.,
      4173550.,  4381950.,  4593550.,  4808350.,  4484750.,  4699550.,
      4917550.,  5138750.,  3949400.,  4126360.,  4305880.,  4487960.,
      3238370.,  3374930.,  3513410.,  3653810.,  3071810.,  3212210.,
      3354530.,  3498770.,  4460760.,  4653080.,  4847960.,  5045400.,
      6040750.,  6287550.,  6537550.,  6790750.,  6351950.,  6605150.,
      6861550.,  7121150.,  6663150.,  6922750.,  7185550.,  7451550.,
      6974350.,  7240350.,  7509550.,  7781950.,  6023000.,  6240920.,
      6461400.,  6684440.,  4855010.,  5022290.,  5191490.,  5362610.,
      4270120.,  4402408.,  4536232.,  4671592.,  6038752.,  6219232.,
      6401760.,  6586336.,  7986840.,  8217560.,  8450840.,  8686680.,
      8287000.,  8522840.,  8761240.,  9002200.,  8587160.,  8828120.,
      9071640.,  9317720.,  8887320.,  9133400.,  9382040.,  9633240.,
      7517920.,  7718880.,  7921888.,  8126944.,  5948584.,  6102376.,
      6257704.,  6414568.,  4684974.,  4799166.,  4914510.,  5031006.,
      6545512.,  6700840.,  6857704.,  7016104.,  8560610.,  8758610.,
      8958530.,  9160370.,  8824130.,  9025970.,  9229730.,  9435410.,
      9087650.,  9293330.,  9500930.,  9710450.,  9351170.,  9560690.,
      9772130.,  9985490.,  7826920.,  7997608.,  8169832.,  8343592.,
      6132750.,  6263070.,  6394542.,  6527166.,  2763630.,  2860926.,
      2959374.,  3058974.,  3938664.,  4071464.,  4205800.,  4341672.,
      5245730.,  5415570.,  5587330.,  5761010.,  5355650.,  5529330.,
      5704930.,  5882450.,  5465570.,  5643090.,  5822530.,  6003890.,
      5575490.,  5756850.,  5940130.,  6125330.,  4761320.,  4909480.,
      5059176.,  5210408.,  3799758.,  3913182.,  4027758.,  4143486.,
      4444840.,  4561768.,  4680232.,  4800232.,  6230752.,  6390752.,
      6552800.,  6716896.,  8175640.,  8380760.,  8588440.,  8798680.,
      8373400.,  8583640.,  8796440.,  9011800.,  8571160.,  8786520.,
      9004440.,  9224920.,  8768920.,  8989400.,  9212440.,  9438040.,
      7382240.,  7562720.,  7745248.,  7929824.,  5816104.,  5954536.,
      6094504.,  6236008.,  6295106.,  6441650.,  6590114.,  6740498.,
      8774872.,  8975384.,  9178456.,  9384088.,  11453870., 11710910.,
      11971150., 12234590., 11765070., 12028510., 12295150., 12564990.,
      12076270., 12346110., 12619150., 12895390., 12387470., 12663710.,
      12943150., 13225790., 10369880., 10595992., 10824664., 11055896.,
      8127458.,  8300882.,  8476226.,  8653490.,  4489538.,  4617650.,
      4747682.,  4879634.,  6318296.,  6494232.,  6672728.,  6853784.,
      8321710.,  8548030.,  8777550.,  9010270.,  8632910.,  8865630.,
      9101550.,  9340670.,  8944110.,  9183230.,  9425550.,  9671070.,
      9255310.,  9500830.,  9749550.,  10001470., 7815000.,  8016536.,
      8220632.,  8427288.,  6174434.,  6329426.,  6486338.,  6645170.,
      1700930.,  1810610.,  1922210.,  2035730.,  2551000.,  2702360.,
      2856280.,  3012760.,  3551150.,  3746750.,  3945550.,  4147550.,
      3862350.,  4064350.,  4269550.,  4477950.,  4173550.,  4381950.,
      4593550.,  4808350.,  4484750.,  4699550.,  4917550.,  5138750.,
      3949400.,  4126360.,  4305880.,  4487960.,  3238370.,  3374930.,
      3513410.,  3653810.,  2927656.,  3035368.,  3144616.,  3255400.,
      4183264.,  4330976.,  4480736.,  4632544.,  5585560.,  5775320.,
      5967640.,  6162520.,  5885720.,  6080600.,  6278040.,  6478040.,
      6185880.,  6385880.,  6588440.,  6793560.,  6486040.,  6691160.,
      6898840.,  7109080.,  5531360.,  5699552.,  5869792.,  6042080.,
      4409512.,  4538728.,  4669480.,  4801768.,  3493806.,  3589566.,
      3686478.,  3784542.,  4908136.,  5038888.,  5171176.,  5305000.,
      6452450.,  6619730.,  6788930.,  6960050.,  6715970.,  6887090.,
      7060130.,  7235090.,  6979490.,  7154450.,  7331330.,  7510130.,
      7243010.,  7421810.,  7602530.,  7785170.,  6091240.,  6237352.,
      6385000.,  6534184.,  4794126.,  4906014.,  5019054.,  5133246.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x7x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    6136.,    9784.,
      13944.,   18616.,   12920.,   17592.,   22776.,   28472.,   18874.,
      23146.,   27802.,   32842.,   19388.,   22748.,   26364.,   30236.,
      13438.,   15374.,   17438.,   19630.,   1500.,    4092.,    6940.,
      10044.,   12856.,   19064.,   25784.,   33016.,   36116.,   46964.,
      58580.,   70964.,   73328.,   89840.,   107376.,  125936.,  103280.,
      121840.,  141424.,  162032.,  109652.,  125108.,  141332.,  158324.,
      95928.,   107256.,  119096.,  131448.,  60060.,   66236.,   72668.,
      79356.,   24890.,   32234.,   39962.,   48074.,   78388.,   94612.,
      111604.,  129364.,  163566.,  190206.,  217998.,  246942.,  283496.,
      322088.,  362216.,  403880.,  353000.,  394664.,  437864.,  482600.,
      333774.,  367326.,  402030.,  437886.,  270580.,  294484.,  319156.,
      344596.,  160346.,  173066.,  186170.,  199658.,  88730.,   99914.,
      111482.,  123434.,  221428.,  245332.,  270004.,  295444.,  401166.,
      439326.,  478638.,  519102.,  631016.,  684968.,  740456.,  797480.,
      700520.,  757544.,  816104.,  876200.,  617454.,  662526.,  708750.,
      756126.,  475060.,  506644.,  538996.,  572116.,  270266.,  286826.,
      303770.,  321098.,  152570.,  167594.,  183002.,  198794.,  364468.,
      396052.,  428404.,  461524.,  638766.,  688446.,  739278.,  791262.,
      978536.,  1047848., 1118696., 1191080., 1048040., 1120424., 1194344.,
      1269800., 901134.,  957726.,  1015470., 1074366., 679540.,  718804.,
      758836.,  799636.,  380186.,  400586.,  421370.,  442538.,  212380.,
      224700.,  237276.,  250108.,  473528.,  499192.,  525368.,  552056.,
      785492.,  825524.,  866324.,  907892.,  1150320., 1205744., 1262192.,
      1319664., 1213040., 1270512., 1329008., 1388528., 1000340., 1044980.,
      1090388., 1136564., 728632.,  759416.,  790712.,  822520.,  395868.,
      411772.,  427932.,  444348.,  168350.,  175662.,  183102.,  190670.,
      365692.,  380828.,  396220.,  411868.,  593050.,  616522.,  640378.,
      664618.,  851448.,  883768.,  916600.,  949944.,  891000.,  924344.,
      958200.,  992568.,  720442.,  746218.,  772378.,  798922.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.,
      1950.,    5166.,    8510.,    11982.,   16508.,   23452.,   30652.,
      38108.,   44698.,   55882.,   67450.,   79402.,   87544.,   103480.,
      119928.,  136888.,  143480.,  160440.,  177912.,  195896.,  135226.,
      148714.,  162586.,  176842.,  109244.,  118748.,  128508.,  138524.,
      64510.,   69518.,   74654.,   79918.,   66780.,   75516.,   84508.,
      93756.,   167992.,  186488.,  205496.,  225016.,  305684.,  334964.,
      365012.,  395828.,  481904.,  522992.,  565104.,  608240.,  610160.,
      653296.,  697456.,  742640.,  526676.,  560564.,  595220.,  630644.,
      398520.,  422136.,  446264.,  470904.,  223644.,  235964.,  248540.,
      261372.,  214970.,  231530.,  248474.,  265802.,  495412.,  530068.,
      565492.,  601684.,  844398.,  898686.,  954126.,  1010718., 1265000.,
      1340456., 1417448., 1495976., 1481960., 1560488., 1640552., 1722152.,
      1235790., 1296990., 1359342., 1422846., 908788.,  951124.,  994228.,
      1038100., 497882.,  519818.,  542138.,  564842.,  463130.,  483530.,
      504314.,  525482.,  1007092., 1049428., 1092532., 1136404., 1634958.,
      1700766., 1767726., 1835838., 2349800., 2440616., 2532968., 2626856.,
      2566760., 2660648., 2756072., 2853032., 2072430., 2145150., 2219022.,
      2294046., 1481908., 1531924., 1582708., 1634260., 792122.,  817898.,
      844058.,  870602.,  711290.,  735530.,  760154.,  785162.,  1518772.,
      1568788., 1619572., 1671124., 2425518., 2502846., 2581326., 2660958.,
      3434600., 3540776., 3648488., 3757736., 3651560., 3760808., 3871592.,
      3983912., 2909070., 2993310., 3078702., 3165246., 2055028., 2112724.,
      2171188., 2230420., 1086362., 1115978., 1145978., 1176362., 646300.,
      664764.,  683484.,  702460.,  1365944., 1403896., 1442360., 1481336.,
      2160980., 2219444., 2278676., 2338676., 3033456., 3113456., 3194480.,
      3276528., 3194480., 3276528., 3359600., 3443696., 2523284., 2586356.,
      2650196., 2714804., 1768504., 1811576., 1855160., 1899256., 928092.,
      950140.,  972444.,  995004.,  416030.,  426414.,  436926.,  447566.,
      873340.,  894620.,  916156.,  937948.,  1372954., 1405642., 1438714.,
      1472170., 1915896., 1960504., 2005624., 2051256., 2004600., 2050232.,
      2096376., 2143032., 1574074., 1609066., 1644442., 1680202., 1097148.,
      1120988., 1145084., 1169436., 572798.,  584974.,  597278.,  609710.,
      3870.,    10158.,   16574.,   23118.,   32636.,   45724.,   59068.,
      72668.,   87322.,   107722.,  128506.,  149674.,  168952.,  197176.,
      225912.,  255160.,  274040.,  303288.,  333048.,  363320.,  251578.,
      274282.,  297370.,  320842.,  199100.,  214748.,  230652.,  246812.,
      115582.,  123662.,  131870.,  140206.,  132060.,  146940.,  162076.,
      177468.,  323128.,  353912.,  385208.,  417016.,  575252.,  622964.,
      671444.,  720692.,  890480.,  956144.,  1022832., 1090544., 1117040.,
      1184752., 1253488., 1323248., 943700.,  996020.,  1049108., 1102964.,
      701112.,  737016.,  773432.,  810360.,  387228.,  405692.,  424412.,
      443388.,  405050.,  430826.,  456986.,  483530.,  912436.,  965524.,
      1019380., 1074004., 1525230., 1607166., 1690254., 1774494., 2246504.,
      2358824., 2472680., 2588072., 2610920., 2726312., 2843240., 2961704.,
      2137806., 2226654., 2316654., 2407806., 1546996., 1607764., 1669300.,
      1731604., 835418.,  866570.,  898106.,  930026.,  837530.,  867146.,
      897146.,  927530.,  1792756., 1853524., 1915060., 1977364., 2868750.,
      2962206., 3056814., 3152574., 4068584., 4196264., 4325480., 4456232.,
      4433000., 4563752., 4696040., 4829864., 3527406., 3627774., 3729294.,
      3831966., 2488756., 2557204., 2626420., 2696404., 1313978., 1348970.,
      1384346., 1420106., 1270010., 1303466., 1337306., 1371530., 2673076.,
      2741524., 2810740., 2880724., 4212270., 4317246., 4423374., 4530654.,
      5890664., 6033704., 6178280., 6324392., 6255080., 6401192., 6548840.,
      6698024., 4917006., 5028894., 5141934., 5256126., 3430516., 3506644.,
      3583540., 3661204., 1792538., 1831370., 1870586., 1910186., 1080220.,
      1104828., 1129692., 1154812., 2258360., 2308600., 2359352., 2410616.,
      3536468., 3613364., 3691028., 3769460., 4916592., 5021168., 5126768.,
      5233392., 5175920., 5282544., 5390192., 5498864., 4046228., 4127732.,
      4210004., 4293044., 2808376., 2863736., 2919608., 2975992., 1460316.,
      1488508., 1516956., 1545660., 663710.,  677166.,  690750.,  704462.,
      1380988., 1408412., 1436092., 1464028., 2152858., 2194762., 2237050.,
      2279722., 2980344., 3037240., 3094648., 3152568., 3118200., 3176120.,
      3234552., 3293496., 2427706., 2471914., 2516506., 2561482., 1678524.,
      1708508., 1738748., 1769244., 869630.,  884878.,  900254.,  915758.};
  const std::array<int, 4> in_shape = {{3, 7, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      318.,   510.,   750.,   870.,   816.,   705.,   796.,   1220.,  1730.,
      1940.,  1756.,  1474.,  1610.,  2400.,  3325.,  3650.,  3230.,  2660.,
      2690.,  3900.,  5275.,  5600.,  4850.,  3920.,  3770.,  5400.,  7225.,
      7550.,  6470.,  5180.,  4850.,  6900.,  9175.,  9500.,  8090.,  6440.,
      5632.,  7900.,  10370., 10680., 8980.,  7066.,  5628.,  7830.,  10200.,
      10470., 8736.,  6825.,  3342.,  4830.,  6510.,  6630.,  5712.,  4593.,
      6268.,  8900.,  11810., 12020., 10204., 8098.,  10250., 14400., 18925.,
      19250., 16190., 12740., 11330., 15900., 20875., 21200., 17810., 14000.,
      12410., 17400., 22825., 23150., 19430., 15260., 13490., 18900., 24775.,
      25100., 21050., 16520., 13984., 19420., 25250., 25560., 21268., 16570.,
      12972., 17910., 23160., 23430., 19392., 15033., 6366.,  9150.,  12270.,
      12390., 10608., 8481.,  11740., 16580., 21890., 22100., 18652., 14722.,
      18890., 26400., 34525., 34850., 29150., 22820., 19970., 27900., 36475.,
      36800., 30770., 24080., 21050., 29400., 38425., 38750., 32390., 25340.,
      22130., 30900., 40375., 40700., 34010., 26600., 22336., 30940., 40130.,
      40440., 33556., 26074., 20316., 27990., 36120., 36390., 30048., 23241.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    7.,    10.,   13.,   10.,   9.,    29.,   39.,   49.,
      59.,   40.,   34.,   95.,   116.,  137.,  158.,  100.,  86.,   222.,
      258.,  294.,  330.,  200.,  166.,  402.,  438.,  474.,  510.,  300.,
      220.,  503.,  536.,  569.,  602.,  340.,  217.,  483.,  509.,  535.,
      561.,  310.,  147.,  322.,  337.,  352.,  367.,  200.,  9.,    28.,
      47.,   66.,   85.,   50.,   65.,   157.,  199.,  241.,  283.,  160.,
      178.,  407.,  476.,  545.,  614.,  340.,  358.,  798.,  898.,  998.,
      1098., 600.,  598.,  1298., 1398., 1498., 1598., 860.,  604.,  1295.,
      1376., 1457., 1538., 820.,  513.,  1091., 1149., 1207., 1265., 670.,
      315.,  666.,  697.,  728.,  759.,  400.,  17.,   52.,   87.,   122.,
      157.,  90.,   121.,  285.,  359.,  433.,  507.,  280.,  322.,  719.,
      836.,  953.,  1070., 580.,  630.,  1374., 1538., 1702., 1866., 1000.,
      1030., 2194., 2358., 2522., 2686., 1420., 988.,  2087., 2216., 2345.,
      2474., 1300., 809.,  1699., 1789., 1879., 1969., 1030., 483.,  1010.,
      1057., 1104., 1151., 600.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2283.,   3708.,   5505.,   6435.,   6084.,   5289.,   5888.,   9088.,
      12960.,  14600.,  13280.,  11192.,  12115.,  18140.,  25225.,  27775.,
      24660.,  20365.,  20575.,  29900.,  40525.,  43075.,  37380.,  30265.,
      29035.,  41660.,  55825.,  58375.,  50100.,  40165.,  37495.,  53420.,
      71125.,  73675.,  62820.,  50065.,  43880.,  61600.,  80920.,  83360.,
      70144.,  55232.,  44043.,  61308.,  79905.,  82035.,  68484.,  53529.,
      25611.,  37116.,  50145.,  51075.,  44100.,  35529.,  48512.,  68992.,
      91680.,  93320.,  79328.,  63032.,  79795.,  112220., 147625., 150175.,
      126420., 99565.,  88255.,  123980., 162925., 165475., 139140., 109465.,
      96715.,  135740., 178225., 180775., 151860., 119365., 105175., 147500.,
      193525., 196075., 164580., 129265., 109544., 152224., 198040., 200480.,
      166912., 130112., 101931., 140796., 182145., 184275., 152580., 118329.,
      48939.,  70524.,  94785.,  95715.,  82116.,  65769.,  91136.,  128896.,
      170400., 172040., 145376., 114872., 147475., 206300., 270025., 272575.,
      228180., 178765., 155935., 218060., 285325., 287875., 240900., 188665.,
      164395., 229820., 300625., 303175., 253620., 198565., 172855., 241580.,
      315925., 318475., 266340., 208465., 175208., 242848., 315160., 317600.,
      263680., 204992., 159819., 220284., 284385., 286515., 236676., 183129.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    42.,    62.,    82.,    67.,    52.,    184.,   256.,
      328.,   400.,   280.,   221.,   646.,   802.,   958.,   1114.,  719.,
      592.,   1568.,  1840.,  2112.,  2384.,  1464.,  1192.,  2928.,  3200.,
      3472.,  3744.,  2224.,  1637.,  3766.,  4018.,  4270.,  4522.,  2567.,
      1640.,  3664.,  3864.,  4064.,  4264.,  2364.,  1121.,  2462.,  2578.,
      2694.,  2810.,  1535.,  53.,    182.,   330.,   478.,   626.,   371.,
      468.,   1144.,  1472.,  1800.,  2128.,  1208.,  1325.,  3046.,  3586.,
      4126.,  4666.,  2591.,  2704.,  6048.,  6832.,  7616.,  8400.,  4600.,
      4584.,  9968.,  10752., 11536., 12320., 6640.,  4661.,  10006., 10642.,
      11278., 11914., 6359.,  3976.,  8464.,  8920.,  9376.,  9832.,  5212.,
      2449.,  5182.,  5426.,  5670.,  5914.,  3119.,  101.,   342.,   618.,
      894.,   1170.,  675.,   884.,   2104.,  2688.,  3272.,  3856.,  2136.,
      2429.,  5446.,  6370.,  7294.,  8218.,  4463.,  4816.,  10528., 11824.,
      13120., 14416., 7736.,  7976.,  17008., 18304., 19600., 20896., 11056.,
      7685.,  16246., 17266., 18286., 19306., 10151., 6312.,  13264., 13976.,
      14688., 15400., 8060.,  3777.,  7902.,  8274.,  8646.,  9018.,  4703.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17238.,   28200.,   42090.,   49410.,   46920.,   40926.,   45208.,
      70048.,   100200.,  113160.,  103200.,  87160.,   93890.,   140920.,
      196350.,  216550.,  192600.,  159290.,  160850.,  234040.,  317550.,
      337750.,  293400.,  237770.,  227810.,  327160.,  438750.,  458950.,
      394200.,  316250.,  294770.,  420280.,  559950.,  580150.,  495000.,
      394730.,  346360.,  486432.,  639240.,  658600.,  554400.,  436696.,
      348438.,  485160.,  632490.,  649410.,  542280.,  423966.,  200406.,
      290856.,  393450.,  400770.,  346440.,  279390.,  381592.,  543136.,
      722280.,  735240.,  625440.,  497272.,  629570.,  885880.,  1165950.,
      1186150., 999000.,  787130.,  696530.,  979000.,  1287150., 1307350.,
      1099800., 865610.,  763490.,  1072120., 1408350., 1428550., 1200600.,
      944090.,  830450.,  1165240., 1529550., 1549750., 1301400., 1022570.,
      867064.,  1205280., 1568520., 1587880., 1322400., 1031128., 808086.,
      1116456., 1444650., 1461570., 1210440., 938910.,  383574.,  553512.,
      744810.,  752130.,  645960.,  517854.,  717976.,  1016224., 1344360.,
      1357320., 1147680., 907384.,  1165250., 1630840., 2135550., 2155750.,
      1805400., 1414970., 1232210., 1723960., 2256750., 2276950., 1906200.,
      1493450., 1299170., 1817080., 2377950., 2398150., 2007000., 1571930.,
      1366130., 1910200., 2499150., 2519350., 2107800., 1650410., 1387768.,
      1924128., 2497800., 2517160., 2090400., 1625560., 1267734., 1747752.,
      2256810., 2273730., 1878600., 1453854.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     140.,    284.,    428.,    572.,    486.,    340.,    1288.,
      1832.,   2376.,   2920.,   2084.,   1570.,   4724.,   5924.,   7124.,
      8324.,   5434.,   4360.,   11728.,  13840.,  15952.,  18064.,  11176.,
      9000.,   22288.,  24400.,  26512.,  28624.,  17096.,  12610.,  29108.,
      31076.,  33044.,  35012.,  19930.,  12740.,  28520.,  30088.,  31656.,
      33224.,  18452.,  8750.,   19244.,  20156.,  21068.,  21980.,  12022.,
      350.,    1292.,   2460.,   3628.,   4796.,   2854.,   3540.,   8712.,
      11304.,  13896.,  16488.,  9380.,   10210.,  23540.,  27812.,  32084.,
      36356.,  20218.,  21000.,  47056.,  53264.,  59472.,  65680.,  36008.,
      35880.,  78096.,  84304.,  90512.,  96720.,  52168.,  36610.,  78644.,
      83684.,  88724.,  93764.,  50074.,  31300.,  66664.,  70280.,  73896.,
      77512.,  41108.,  19310.,  40876.,  42812.,  44748.,  46684.,  24630.,
      670.,    2444.,   4636.,   6828.,   9020.,   5222.,   6740.,   16136.,
      20776.,  25416.,  30056.,  16676.,  18850.,  42356.,  49700.,  57044.,
      64388.,  35002.,  37640.,  82384.,  92688.,  102992., 113296., 60840.,
      62760.,  133904., 144208., 154512., 164816., 87240.,  60610.,  128180.,
      136292., 144404., 152516., 80218.,  49860.,  104808., 110472., 116136.,
      121800., 63764.,  29870.,  62508.,  65468.,  68428.,  71388.,  37238.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1011.,   1272.,   1668.,   2040.,   2505.,   3000.,   2955.,   3480.,
      2820.,   3264.,   2469.,   2820.,   2704.,   3184.,   4208.,   4880.,
      6040.,   6920.,   6840.,   7760.,   6256.,   7024.,   5296.,   5896.,
      5675.,   6440.,   8540.,   9600.,   11925.,  13300.,  13175.,  14600.,
      11740.,  12920.,  9725.,   10640.,  9815.,   10760.,  14300.,  15600.,
      19425.,  21100.,  20675.,  22400.,  17980.,  19400.,  14585.,  15680.,
      13955.,  15080.,  20060.,  21600.,  26925.,  28900.,  28175.,  30200.,
      24220.,  25880.,  19445.,  20720.,  18095.,  19400.,  25820.,  27600.,
      34425.,  36700.,  35675.,  38000.,  30460.,  32360.,  24305.,  25760.,
      21352.,  22528.,  30000.,  31600.,  39440.,  41480.,  40640.,  42720.,
      34224.,  35920.,  26968.,  28264.,  21531.,  22512.,  29988.,  31320.,
      39105.,  40800.,  40155.,  41880.,  33540.,  34944.,  26229.,  27300.,
      12243.,  13368.,  17796.,  19320.,  24105.,  26040.,  24555.,  26520.,
      21252.,  22848.,  17157.,  18372.,  23440.,  25072.,  33392.,  35600.,
      44440.,  47240.,  45240.,  48080.,  38512.,  40816.,  30640.,  32392.,
      38795.,  41000.,  54620.,  57600.,  71925.,  75700.,  73175.,  77000.,
      61660.,  64760.,  48605.,  50960.,  42935.,  45320.,  60380.,  63600.,
      79425.,  83500.,  80675.,  84800.,  67900.,  71240.,  53465.,  56000.,
      47075.,  49640.,  66140.,  69600.,  86925.,  91300.,  88175.,  92600.,
      74140.,  77720.,  58325.,  61040.,  51215.,  53960.,  71900.,  75600.,
      94425.,  99100.,  95675.,  100400., 80380.,  84200.,  63185.,  66080.,
      53608.,  55936.,  74544.,  77680.,  97040.,  101000., 98240.,  102240.,
      81840.,  85072.,  63832.,  66280.,  50043.,  51888.,  69156.,  71640.,
      89505.,  92640.,  90555.,  93720.,  75012.,  77568.,  58197.,  60132.,
      23475.,  25464.,  33924.,  36600.,  45705.,  49080.,  46155.,  49560.,
      39684.,  42432.,  31845.,  33924.,  44176.,  46960.,  62576.,  66320.,
      82840.,  87560.,  83640.,  88400.,  70768.,  74608.,  55984.,  58888.,
      71915.,  75560.,  100700., 105600., 131925., 138100., 133175., 139400.,
      111580., 116600., 87485.,  91280.,  76055.,  79880.,  106460., 111600.,
      139425., 145900., 140675., 147200., 117820., 123080., 92345.,  96320.,
      80195.,  84200.,  112220., 117600., 146925., 153700., 148175., 155000.,
      124060., 129560., 97205.,  101360., 84335.,  88520.,  117980., 123600.,
      154425., 161500., 155675., 162800., 130300., 136040., 102065., 106400.,
      85864.,  89344.,  119088., 123760., 154640., 160520., 155840., 161760.,
      129456., 134224., 100696., 104296., 78555.,  81264.,  108324., 111960.,
      139905., 144480., 140955., 145560., 116484., 120192., 90165.,  92964.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    6.,    16.,   14.,   28.,   22.,   40.,    30.,    52.,
      27.,   40.,   16.,   36.,   68.,   116.,  100.,  156.,   132.,   196.,
      164.,  236.,  120.,  160.,  85.,   136.,  266.,  380.,   338.,   464.,
      410.,  548.,  482.,  632.,  319.,  400.,  248.,  344.,   680.,   888.,
      808.,  1032., 936.,  1176., 1064., 1320., 664.,  800.,   528.,   664.,
      1320., 1608., 1448., 1752., 1576., 1896., 1704., 2040.,  1024.,  1200.,
      757.,  880.,  1754., 2012., 1874., 2144., 1994., 2276.,  2114.,  2408.,
      1207., 1360., 772.,  868.,  1732., 1932., 1828., 2036.,  1924.,  2140.,
      2020., 2244., 1124., 1240., 533.,  588.,  1174., 1288.,  1230.,  1348.,
      1286., 1408., 1342., 1468., 735.,  800.,  17.,   36.,    70.,    112.,
      142.,  188.,  214.,  264.,  286.,  340.,  171.,  200.,   208.,   260.,
      516.,  628.,  676.,  796.,  836.,  964.,  996.,  1132.,  568.,   640.,
      613.,  712.,  1418., 1628., 1682., 1904., 1946., 2180.,  2210.,  2456.,
      1231., 1360., 1272., 1432., 2856., 3192., 3240., 3592.,  3624.,  3992.,
      4008., 4392., 2200., 2400., 2192., 2392., 4776., 5192.,  5160.,  5592.,
      5544., 5992., 5928., 6392., 3200., 3440., 2245., 2416.,  4826.,  5180.,
      5138., 5504., 5450., 5828., 5762., 6152., 3079., 3280.,  1924.,  2052.,
      4100., 4364., 4324., 4596., 4548., 4828., 4772., 5060.,  2532.,  2680.,
      1189., 1260., 2518., 2664., 2638., 2788., 2758., 2912.,  2878.,  3036.,
      1519., 1600., 33.,   68.,   134.,  208.,  270.,  348.,   406.,   488.,
      542.,  628.,  315.,  360.,  400.,  484.,  964.,  1140.,  1252.,  1436.,
      1540., 1732., 1828., 2028., 1016., 1120., 1141., 1288.,  2570.,  2876.,
      3026., 3344., 3482., 3812., 3938., 4280., 2143., 2320.,  2296.,  2520.,
      5032., 5496., 5672., 6152., 6312., 6808., 6952., 7464.,  3736.,  4000.,
      3856., 4120., 8232., 8776., 8872., 9432., 9512., 10088., 10152., 10744.,
      5376., 5680., 3733., 3952., 7898., 8348., 8402., 8864.,  8906.,  9380.,
      9410., 9896., 4951., 5200., 3076., 3236., 6468., 6796.,  6820.,  7156.,
      7172., 7516., 7524., 7876., 3940., 4120., 1845., 1932.,  3862.,  4040.,
      4046., 4228., 4230., 4416., 4414., 4604., 2303., 2400.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7593.,    9645.,    12636.,   15564.,   19095.,   22995.,   22635.,
      26775.,   21708.,   25212.,   19077.,   21849.,   20708.,   24500.,
      32368.,   37680.,   46620.,   53580.,   52940.,   60220.,   48560.,
      54640.,   41204.,   45956.,   43915.,   49975.,   66260.,   74660.,
      92725.,   103625.,  102625.,  113925.,  91620.,   100980.,  76015.,
      83275.,   76675.,   84175.,   111860.,  122180.,  152125.,  165425.,
      162025.,  175725.,  141060.,  152340.,  114535.,  123235.,  109435.,
      118375.,  157460.,  169700.,  211525.,  227225.,  221425.,  237525.,
      190500.,  203700.,  153055.,  163195.,  142195.,  152575.,  203060.,
      217220.,  270925.,  289025.,  280825.,  299325.,  239940.,  255060.,
      191575.,  203155.,  168500.,  177860.,  236848.,  249584.,  311500.,
      327740.,  321020.,  337580.,  270448.,  283952.,  213188.,  223508.,
      170313.,  178125.,  237276.,  247884.,  309495.,  322995.,  317835.,
      331575.,  265548.,  276732.,  207717.,  216249.,  95721.,   104685.,
      139356.,  151500.,  189015.,  204435.,  192555.,  208215.,  166860.,
      179580.,  134853.,  144537.,  184292.,  197300.,  262768.,  280368.,
      349980.,  372300.,  356300.,  378940.,  303536.,  321904.,  241652.,
      255620.,  305995.,  323575.,  431060.,  454820.,  567925.,  598025.,
      577825.,  608325.,  487140.,  511860.,  384175.,  402955.,  338755.,
      357775.,  476660.,  502340.,  627325.,  659825.,  637225.,  670125.,
      536580.,  563220.,  422695.,  442915.,  371515.,  391975.,  522260.,
      549860.,  686725.,  721625.,  696625.,  731925.,  586020.,  614580.,
      461215.,  482875.,  404275.,  426175.,  567860.,  597380.,  746125.,
      783425.,  756025.,  793725.,  635460.,  665940.,  499735.,  522835.,
      424244.,  442820.,  590128.,  615152.,  768460.,  800060.,  777980.,
      809900.,  648304.,  674096.,  505796.,  525332.,  396681.,  411405.,
      548316.,  568140.,  709815.,  734835.,  718155.,  743415.,  595020.,
      615420.,  461733.,  477177.,  183849.,  199725.,  266076.,  287436.,
      358935.,  385875.,  362475.,  389655.,  312012.,  333948.,  250629.,
      267225.,  347876.,  370100.,  493168.,  523056.,  653340.,  691020.,
      659660.,  697660.,  558512.,  589168.,  442100.,  465284.,  568075.,
      597175.,  795860.,  834980.,  1043125., 1092425., 1053025., 1102725.,
      882660.,  922740.,  692335.,  722635.,  600835.,  631375.,  841460.,
      882500.,  1102525., 1154225., 1112425., 1164525., 932100.,  974100.,
      730855.,  762595.,  633595.,  665575.,  887060.,  930020.,  1161925.,
      1216025., 1171825., 1226325., 981540.,  1025460., 769375.,  802555.,
      666355.,  699775.,  932660.,  977540.,  1221325., 1277825., 1231225.,
      1288125., 1030980., 1076820., 807895.,  842515.,  679988.,  707780.,
      943408.,  980720.,  1225420., 1272380., 1234940., 1282220., 1026160.,
      1064240., 798404.,  827156.,  623049.,  644685.,  859356.,  888396.,
      1110135., 1146675., 1118475., 1155255., 924492.,  954108.,  715749.,
      738105.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     25.,    34.,    106.,   90.,    194.,   146.,   282.,   202.,
      370.,   193.,   293.,   94.,    246.,   460.,   828.,   700.,   1132.,
      940.,   1436.,  1180.,  1740.,  886.,   1198.,  587.,   983.,   1918.,
      2806.,  2470.,  3454.,  3022.,  4102.,  3574.,  4750.,  2399.,  3035.,
      1804.,  2556.,  5048.,  6680.,  6040.,  7800.,  7032.,  8920.,  8024.,
      10040., 5052.,  6124.,  3964.,  5036.,  10008., 12280., 11000., 13400.,
      11992., 14520., 12984., 15640., 7852.,  9244.,  5819.,  6791.,  13534.,
      15574., 14470., 16606., 15406., 17638., 16342., 18670., 9359.,  10571.,
      5990.,  6750.,  13468., 15052., 14220., 15868., 14972., 16684., 15724.,
      17500., 8766.,  9686.,  4157.,  4593.,  9170.,  10074., 9610.,  10546.,
      10050., 11018., 10490., 11490., 5753.,  6269.,  101.,   249.,   482.,
      810.,   1050.,  1410.,  1618.,  2010.,  2186.,  2610.,  1313.,  1541.,
      1566.,  1974.,  3916.,  4796.,  5180.,  6124.,  6444.,  7452.,  7708.,
      8780.,  4406.,  4974.,  4715.,  5495.,  10942., 12598., 13030., 14782.,
      15118., 16966., 17206., 19150., 9599.,  10619., 9868.,  11132., 22200.,
      24856., 25240., 28024., 28280., 31192., 31320., 34360., 17212., 18796.,
      17148., 18732., 37400., 40696., 40440., 43864., 43480., 47032., 46520.,
      50200., 25132., 27036., 17627., 18983., 37918., 40726., 40390., 43294.,
      42862., 45862., 45334., 48430., 24239., 25835., 15142., 16158., 32284.,
      34380., 34060., 36220., 35836., 38060., 37612., 39900., 19966., 21142.,
      9373.,  9937.,  19858., 21018., 20810., 22002., 21762., 22986., 22714.,
      23970., 11993., 12637., 197.,   473.,   930.,   1514.,  2010.,  2626.,
      3090.,  3738.,  4170.,  4850.,  2433.,  2789.,  3038.,  3702.,  7372.,
      8764.,  9660.,  11116., 11948., 13468., 14236., 15820., 7926.,  8750.,
      8843.,  10007., 19966., 22390., 23590., 26110., 27214., 29830., 30838.,
      33550., 16799., 18203., 17932., 19708., 39352., 43032., 44440., 48248.,
      49528., 53464., 54616., 58680., 29372., 31468., 30332., 32428., 64792.,
      69112., 69880., 74328., 74968., 79544., 80056., 84760., 42412., 44828.,
      29435., 31175., 62302., 65878., 66310., 69982., 70318., 74086., 74326.,
      78190., 39119., 41099., 24294., 25566., 51100., 53708., 53900., 56572.,
      56700., 59436., 59500., 62300., 31166., 32598., 14589., 15281., 30546.,
      31962., 32010., 33458., 33474., 34954., 34938., 36450., 18233., 19005.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58782.,    75054.,   98280.,   121512.,   149010.,  179970.,   177090.,
      209970.,   170280.,  198120.,  149934.,   171966.,  161992.,   192136.,
      253792.,   296032.,  366200.,  421560.,   416440.,  474360.,   382560.,
      430944.,   325000.,  362824.,  345410.,   393650.,  521880.,   588760.,
      731150.,   817950.,  809950.,  899950.,   723800.,  798360.,   601010.,
      658850.,   606050.,  665810.,  884760.,   967000.,  1203950.,  1309950.,
      1282750.,  1391950., 1117400., 1207320.,  907730.,  977090.,   866690.,
      937970.,   1247640., 1345240., 1676750.,  1801950., 1755550.,  1883950.,
      1511000.,  1616280., 1214450., 1295330.,  1127330., 1210130.,  1610520.,
      1723480.,  2149550., 2293950., 2228350.,  2375950., 1904600.,  2025240.,
      1521170.,  1613570., 1338760., 1413448.,  1882208., 1983840.,  2475960.,
      2605560.,  2551800., 2683960., 2150240.,  2258016., 1695304.,  1777672.,
      1354782.,  1417134., 1887720., 1972392.,  2462610., 2570370.,  2529090.,
      2638770.,  2113320., 2202600., 1653294.,  1721406., 756894.,   828462.,
      1102824.,  1199784., 1496850., 1619970.,  1524930., 1649970.,  1322280.,
      1423848.,  1069230., 1146558., 1461448.,  1565320., 2084704.,  2225248.,
      2777720.,  2955960., 2827960., 3008760.,  2410080., 2556768.,  1919368.,
      2030920.,  2430530., 2570930., 3424920.,  3614680., 4513550.,  4753950.,
      4592350.,  4835950., 3872600., 4070040.,  3054770., 3204770.,  2691170.,
      2843090.,  3787800., 3992920., 4986350.,  5245950., 5065150.,  5327950.,
      4266200.,  4479000., 3361490., 3523010.,  2951810., 3115250.,  4150680.,
      4371160.,  5459150., 5737950., 5537950.,  5819950., 4659800.,  4887960.,
      3668210.,  3841250., 3212450., 3387410.,  4513560., 4749400.,  5931950.,
      6229950.,  6010750., 6311950., 5053400.,  5296920., 3974930.,  4159490.,
      3375496.,  3523912., 4696160., 4896096.,  6116280., 6368760.,  6192120.,
      6447160.,  5160800., 5366880., 4026952.,  4183048., 3158814.,  3276462.,
      4366824.,  4525224., 5653650., 5853570.,  5720130., 5921970.,  4739880.,
      4902888.,  3678510., 3801918., 1455006.,  1581870., 2107368.,  2278056.,
      2844690.,  3059970., 2872770., 3089970.,  2474280., 2649576.,  1988526.,
      2121150.,  2760904., 2938504., 3915616.,  4154464., 5189240.,  5490360.,
      5239480.,  5543160., 4437600., 4682592.,  3513736., 3699016.,  4515650.,
      4748210.,  6327960., 6640600., 8295950.,  8689950., 8374750.,  8771950.,
      7021400.,  7341720., 5508530., 5750690.,  4776290., 5020370.,  6690840.,
      7018840.,  8768750., 9181950., 8847550.,  9263950., 7415000.,  7750680.,
      5815250.,  6068930., 5036930., 5292530.,  7053720., 7397080.,  9241550.,
      9673950.,  9320350., 9755950., 7808600.,  8159640., 6121970.,  6387170.,
      5297570.,  5564690., 7416600., 7775320.,  9714350., 10165950., 9793150.,
      10247950., 8202200., 8568600., 6428690.,  6705410., 5412232.,  5634376.,
      7510112.,  7808352., 9756600., 10131960., 9832440., 10210360., 8171360.,
      8475744.,  6358600., 6588424., 4962846.,  5135790., 6845928.,  7078056.,
      8844690.,  9136770., 8911170., 9205170.,  7366440., 7603176.,  5703726.,
      5882430.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     174.,    220.,    764.,    636.,    1436.,   1052.,   2108.,
      1468.,   2780.,   1454.,   2238.,   620.,    1804.,   3352.,   6232.,
      5208.,   8600.,   7064.,   10968.,  8920.,   13336.,  6796.,   9260.,
      4330.,   7450.,   14516.,  21524.,  18836.,  26612.,  23156.,  31700.,
      27476.,  36788.,  18586.,  23626.,  13720.,  19672.,  38832.,  51760.,
      46640.,  60592.,  54448.,  69424.,  62256.,  78256.,  39384.,  47896.,
      30680.,  39192.,  77872.,  95920.,  85680.,  104752., 93488.,  113584.,
      101296., 122416., 61464.,  72536.,  45610.,  53338.,  106292., 122516.,
      113684., 130676., 121076., 138836., 128468., 146996., 73690.,  83338.,
      47180.,  53228.,  106200., 118808., 112152., 125272., 118104., 131736.,
      124056., 138200., 69228.,  76556.,  32830.,  36302.,  72476.,  79676.,
      75964.,  83420.,  79452.,  87164.,  82940.,  90908.,  45518.,  49630.,
      670.,    1838.,   3548.,   6140.,   8060.,   10908.,  12572.,  15676.,
      17084.,  20444.,  10286.,  12094.,  12140.,  15372.,  30488.,  37464.,
      40536.,  48024.,  50584.,  58584.,  60632.,  69144.,  34700.,  39212.,
      36970.,  43162.,  85940.,  99092.,  102548., 116468., 119156., 133844.,
      135764., 151220., 75802.,  83914.,  77720.,  87768.,  175024., 196144.,
      199216., 221360., 223408., 246576., 247600., 271792., 136152., 148760.,
      135640., 148248., 295984., 322224., 320176., 347440., 344368., 372656.,
      368560., 397872., 199192., 214360., 139690., 150490., 300596., 322964.,
      320276., 343412., 339956., 363860., 359636., 384308., 192346., 205066.,
      120140., 128236., 256216., 272920., 270360., 287576., 284504., 302232.,
      298648., 316888., 158572., 167948., 74430.,  78926.,  157724., 166972.,
      165308., 174812., 172892., 182652., 180476., 190492., 95310.,  100446.,
      1310.,   3502.,   6876.,   11516.,  15484.,  20380.,  24092.,  29244.,
      32700.,  38108.,  19118.,  21950.,  23660.,  28940.,  57624.,  68696.,
      75864.,  87448.,  94104.,  106200., 112344., 124952., 62604.,  69164.,
      69610.,  78874.,  157364., 176660., 186260., 206324., 215156., 235988.,
      244052., 265652., 133018., 144202., 141720., 155864., 311216., 340528.,
      351792., 382128., 392368., 423728., 432944., 465328., 232920., 249624.,
      240600., 257304., 514096., 548528., 554672., 590128., 595248., 631728.,
      635824., 673328., 336920., 356184., 233770., 247642., 494900., 523412.,
      526868., 556148., 558836., 588884., 590804., 621620., 311002., 326794.,
      193100., 203244., 406232., 427032., 428568., 449880., 450904., 472728.,
      473240., 495576., 247916., 259340., 116030., 121550., 242972., 254268.,
      254652., 266204., 266332., 278140., 278012., 290076., 145102., 151262.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3549.,   4044.,   4557.,   5088.,   5964.,   6672.,   7404.,   8160.,
      9075.,   10020.,  10995.,  12000.,  10815.,  11820.,  12855.,  13920.,
      10428.,  11280.,  12156.,  13056.,  9201.,   9876.,   10569.,  11280.,
      9892.,   10816.,  11764.,  12736.,  15536.,  16832.,  18160.,  19520.,
      22460.,  24160.,  25900.,  27680.,  25580.,  27360.,  29180.,  31040.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      21215.,  22700.,  24215.,  25760.,  32100.,  34160.,  36260.,  38400.,
      45025.,  47700.,  50425.,  53200.,  49925.,  52700.,  55525.,  58400.,
      44660.,  46960.,  49300.,  51680.,  37115.,  38900.,  40715.,  42560.,
      37415.,  39260.,  41135.,  43040.,  54660.,  57200.,  59780.,  62400.,
      74425.,  77700.,  81025.,  84400.,  79325.,  82700.,  86125.,  89600.,
      69140.,  71920.,  74740.,  77600.,  56195.,  58340.,  60515.,  62720.,
      53615.,  55820.,  58055.,  60320.,  77220.,  80240.,  83300.,  86400.,
      103825., 107700., 111625., 115600., 108725., 112700., 116725., 120800.,
      93620.,  96880.,  100180., 103520., 75275.,  77780.,  80315.,  82880.,
      69815.,  72380.,  74975.,  77600.,  99780.,  103280., 106820., 110400.,
      133225., 137700., 142225., 146800., 138125., 142700., 147325., 152000.,
      118100., 121840., 125620., 129440., 94355.,  97220.,  100115., 103040.,
      83092.,  85408.,  87748.,  90112.,  116848., 120000., 123184., 126400.,
      153740., 157760., 161820., 165920., 158460., 162560., 166700., 170880.,
      133552., 136896., 140272., 143680., 105316., 107872., 110452., 113056.,
      84189.,  86124.,  88077.,  90048.,  117324., 119952., 122604., 125280.,
      153075., 156420., 159795., 163200., 157215., 160620., 164055., 167520.,
      131388., 134160., 136956., 139776., 102801., 104916., 107049., 109200.,
      46749.,  48972.,  51213.,  53472.,  68172.,  71184.,  74220.,  77280.,
      92595.,  96420.,  100275., 104160., 94335.,  98220.,  102135., 106080.,
      81852.,  85008.,  88188.,  91392.,  66225.,  68628.,  71049.,  73488.,
      90532.,  93760.,  97012.,  100288., 129200., 133568., 137968., 142400.,
      172220., 177760., 183340., 188960., 175340., 180960., 186620., 192320.,
      149488., 154048., 158640., 163264., 119092., 122560., 126052., 129568.,
      150815., 155180., 159575., 164000., 212580., 218480., 224420., 230400.,
      280225., 287700., 295225., 302800., 285125., 292700., 300325., 308000.,
      240500., 246640., 252820., 259040., 189755., 194420., 199115., 203840.,
      167015., 171740., 176495., 181280., 235140., 241520., 247940., 254400.,
      309625., 317700., 325825., 334000., 314525., 322700., 330925., 339200.,
      264980., 271600., 278260., 284960., 208835., 213860., 218915., 224000.,
      183215., 188300., 193415., 198560., 257700., 264560., 271460., 278400.,
      339025., 347700., 356425., 365200., 343925., 352700., 361525., 370400.,
      289460., 296560., 303700., 310880., 227915., 233300., 238715., 244160.,
      199415., 204860., 210335., 215840., 280260., 287600., 294980., 302400.,
      368425., 377700., 387025., 396400., 373325., 382700., 392125., 401600.,
      313940., 321520., 329140., 336800., 246995., 252740., 258515., 264320.,
      209812., 214432., 219076., 223744., 291952., 298176., 304432., 310720.,
      380300., 388160., 396060., 404000., 385020., 392960., 400940., 408960.,
      320944., 327360., 333808., 340288., 250468., 255328., 260212., 265120.,
      196509., 200172., 203853., 207552., 271692., 276624., 281580., 286560.,
      351795., 358020., 364275., 370560., 355935., 362220., 368535., 374880.,
      294972., 300048., 305148., 310272., 228945., 232788., 236649., 240528.,
      89949.,  93900.,  97869.,  101856., 130380., 135696., 141036., 146400.,
      176115., 182820., 189555., 196320., 177855., 184620., 191415., 198240.,
      153276., 158736., 164220., 169728., 123249., 127380., 131529., 135696.,
      171172., 176704., 182260., 187840., 242864., 250304., 257776., 265280.,
      321980., 331360., 340780., 350240., 325100., 334560., 344060., 353600.,
      275440., 283072., 290736., 298432., 218164., 223936., 229732., 235552.,
      280415., 287660., 294935., 302240., 393060., 402800., 412580., 422400.,
      515425., 527700., 540025., 552400., 520325., 532700., 545125., 557600.,
      436340., 446320., 456340., 466400., 342395., 349940., 357515., 365120.,
      296615., 304220., 311855., 319520., 415620., 425840., 436100., 446400.,
      544825., 557700., 570625., 583600., 549725., 562700., 575725., 588800.,
      460820., 471280., 481780., 492320., 361475., 369380., 377315., 385280.,
      312815., 320780., 328775., 336800., 438180., 448880., 459620., 470400.,
      574225., 587700., 601225., 614800., 579125., 592700., 606325., 620000.,
      485300., 496240., 507220., 518240., 380555., 388820., 397115., 405440.,
      329015., 337340., 345695., 354080., 460740., 471920., 483140., 494400.,
      603625., 617700., 631825., 646000., 608525., 622700., 636925., 651200.,
      509780., 521200., 532660., 544160., 399635., 408260., 416915., 425600.,
      336532., 343456., 350404., 357376., 467056., 476352., 485680., 495040.,
      606860., 618560., 630300., 642080., 611580., 623360., 635180., 647040.,
      508336., 517824., 527344., 536896., 395620., 402784., 409972., 417184.,
      308829., 314220., 319629., 325056., 426060., 433296., 440556., 447840.,
      550515., 559620., 568755., 577920., 554655., 563820., 573015., 582240.,
      458556., 465936., 473340., 480768., 355089., 360660., 366249., 371856.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    34.,
      56.,    82.,    112.,   58.,    88.,    122.,   160.,   82.,    120.,
      162.,   208.,   85.,    108.,   133.,   160.,   30.,    64.,    102.,
      144.,   188.,   272.,   364.,   464.,   300.,   400.,   508.,   624.,
      412.,   528.,   652.,   784.,   524.,   656.,   796.,   944.,   406.,
      480.,   558.,   640.,   247.,   340.,   439.,   544.,   854.,   1064.,
      1286.,  1520.,  1118.,  1352.,  1598.,  1856.,  1382.,  1640.,  1910.,
      2192.,  1646.,  1928.,  2222.,  2528.,  1123.,  1276.,  1435.,  1600.,
      812.,   992.,   1180.,  1376.,  2328.,  2720.,  3128.,  3552.,  2808.,
      3232.,  3672.,  4128.,  3288.,  3744.,  4216.,  4704.,  3768.,  4256.,
      4760.,  5280.,  2396.,  2656.,  2924.,  3200.,  1852.,  2112.,  2380.,
      2656.,  4728.,  5280.,  5848.,  6432.,  5208.,  5792.,  6392.,  7008.,
      5688.,  6304.,  6936.,  7584.,  6168.,  6816.,  7480.,  8160.,  3756.,
      4096.,  4444.,  4800.,  2791.,  3028.,  3271.,  3520.,  6518.,  7016.,
      7526.,  8048.,  6974.,  7496.,  8030.,  8576.,  7430.,  7976.,  8534.,
      9104.,  7886.,  8456.,  9038.,  9632.,  4531.,  4828.,  5131.,  5440.,
      2902.,  3088.,  3278.,  3472.,  6540.,  6928.,  7324.,  7728.,  6908.,
      7312.,  7724.,  8144.,  7276.,  7696.,  8124.,  8560.,  7644.,  8080.,
      8524.,  8976.,  4270.,  4496.,  4726.,  4960.,  2025.,  2132.,  2241.,
      2352.,  4474.,  4696.,  4922.,  5152.,  4690.,  4920.,  5154.,  5392.,
      4906.,  5144.,  5386.,  5632.,  5122.,  5368.,  5618.,  5872.,  2813.,
      2940.,  3069.,  3200.,  33.,    68.,    105.,   144.,   202.,   280.,
      362.,   448.,   482.,   568.,   658.,   752.,   762.,   856.,   954.,
      1056.,  1042.,  1144.,  1250.,  1360.,  629.,   684.,   741.,   800.,
      734.,   832.,   934.,   1040.,  1852.,  2064.,  2284.,  2512.,  2476.,
      2704.,  2940.,  3184.,  3100.,  3344.,  3596.,  3856.,  3724.,  3984.,
      4252.,  4528.,  2134.,  2272.,  2414.,  2560.,  2263.,  2452.,  2647.,
      2848.,  5270.,  5672.,  6086.,  6512.,  6302.,  6728.,  7166.,  7616.,
      7334.,  7784.,  8246.,  8720.,  8366.,  8840.,  9326.,  9824.,  4675.,
      4924.,  5179.,  5440.,  4780.,  5088.,  5404.,  5728.,  10776., 11424.,
      12088., 12768., 12280., 12960., 13656., 14368., 13784., 14496., 15224.,
      15968., 15288., 16032., 16792., 17568., 8412.,  8800.,  9196.,  9600.,
      8380.,  8768.,  9164.,  9568.,  18296., 19104., 19928., 20768., 19800.,
      20640., 21496., 22368., 21304., 22176., 23064., 23968., 22808., 23712.,
      24632., 25568., 12332., 12800., 13276., 13760., 8647.,  8980.,  9319.,
      9664.,  18614., 19304., 20006., 20720., 19838., 20552., 21278., 22016.,
      21062., 21800., 22550., 23312., 22286., 23048., 23822., 24608., 11923.,
      12316., 12715., 13120., 7446.,  7696.,  7950.,  8208.,  15884., 16400.,
      16924., 17456., 16764., 17296., 17836., 18384., 17644., 18192., 18748.,
      19312., 18524., 19088., 19660., 20240., 9838.,  10128., 10422., 10720.,
      4617.,  4756.,  4897.,  5040.,  9786.,  10072., 10362., 10656., 10258.,
      10552., 10850., 11152., 10730., 11032., 11338., 11648., 11202., 11512.,
      11826., 12144., 5917.,  6076.,  6237.,  6400.,  65.,    132.,   201.,
      272.,   394.,   536.,   682.,   832.,   930.,   1080.,  1234.,  1392.,
      1466.,  1624.,  1786.,  1952.,  2002.,  2168.,  2338.,  2512.,  1173.,
      1260.,  1349.,  1440.,  1438.,  1600.,  1766.,  1936.,  3516.,  3856.,
      4204.,  4560.,  4652.,  5008.,  5372.,  5744.,  5788.,  6160.,  6540.,
      6928.,  6924.,  7312.,  7708.,  8112.,  3862.,  4064.,  4270.,  4480.,
      4279.,  4564.,  4855.,  5152.,  9686.,  10280., 10886., 11504., 11486.,
      12104., 12734., 13376., 13286., 13928., 14582., 15248., 15086., 15752.,
      16430., 17120., 8227.,  8572.,  8923.,  9280.,  8748.,  9184.,  9628.,
      10080., 19224., 20128., 21048., 21984., 21752., 22688., 23640., 24608.,
      24280., 25248., 26232., 27232., 26808., 27808., 28824., 29856., 14428.,
      14944., 15468., 16000., 14908., 15424., 15948., 16480., 31864., 32928.,
      34008., 35104., 34392., 35488., 36600., 37728., 36920., 38048., 39192.,
      40352., 39448., 40608., 41784., 42976., 20908., 21504., 22108., 22720.,
      14503., 14932., 15367., 15808., 30710., 31592., 32486., 33392., 32702.,
      33608., 34526., 35456., 34694., 35624., 36566., 37520., 36686., 37640.,
      38606., 39584., 19315., 19804., 20299., 20800., 11990., 12304., 12622.,
      12944., 25228., 25872., 26524., 27184., 26620., 27280., 27948., 28624.,
      28012., 28688., 29372., 30064., 29404., 30096., 30796., 31504., 15406.,
      15760., 16118., 16480., 7209.,  7380.,  7553.,  7728.,  15098., 15448.,
      15802., 16160., 15826., 16184., 16546., 16912., 16554., 16920., 17290.,
      17664., 17282., 17656., 18034., 18416., 9021.,  9212.,  9405.,  9600.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27429.,   31353.,   35421.,   39633.,   46332.,   51948.,   57756.,
      63756.,   70755.,   78255.,   85995.,   93975.,   84555.,   92535.,
      100755.,  109215.,  81756.,   88524.,   95484.,   102636.,  72285.,
      77649.,   83157.,   88809.,   77324.,   84668.,   92204.,   99932.,
      121744.,  132048.,  142608.,  153424.,  176340.,  189860.,  203700.,
      217860.,  201140.,  215300.,  229780.,  244580.,  185360.,  197200.,
      209296.,  221648.,  157868.,  167132.,  176588.,  186236.,  166795.,
      178615.,  190675.,  202975.,  252740.,  269140.,  285860.,  302900.,
      354925.,  376225.,  397925.,  420025.,  393925.,  416025.,  438525.,
      461425.,  352740.,  371060.,  389700.,  408660.,  293395.,  307615.,
      322075.,  336775.,  295675.,  310375.,  325315.,  340495.,  432260.,
      452500.,  473060.,  493940.,  588925.,  615025.,  641525.,  668425.,
      627925.,  654825.,  682125.,  709825.,  547620.,  569780.,  592260.,
      615060.,  445315.,  462415.,  479755.,  497335.,  424555.,  442135.,
      459955.,  478015.,  611780.,  635860.,  660260.,  684980.,  822925.,
      853825.,  885125.,  916825.,  861925.,  893625.,  925725.,  958225.,
      742500.,  768500.,  794820.,  821460.,  597235.,  617215.,  637435.,
      657895.,  553435.,  573895.,  594595.,  615535.,  791300.,  819220.,
      847460.,  876020.,  1056925., 1092625., 1128725., 1165225., 1095925.,
      1132425., 1169325., 1206625., 937380.,  967220.,  997380.,  1027860.,
      749155.,  772015.,  795115.,  818455.,  660140.,  678620.,  697292.,
      716156.,  928528.,  953680.,  979088.,  1004752., 1221940., 1254020.,
      1286420., 1319140., 1259540., 1292260., 1325300., 1358660., 1061776.,
      1088464., 1115408., 1142608., 837452.,  857852.,  878444.,  899228.,
      669669.,  685113.,  700701.,  716433.,  933372.,  954348.,  975516.,
      996876.,  1217955., 1244655., 1271595., 1298775., 1250955., 1278135.,
      1305555., 1333215., 1045596., 1067724., 1090044., 1112556., 818205.,
      835089.,  852117.,  869289.,  369573.,  387321.,  405213.,  423249.,
      539388.,  563436.,  587676.,  612108.,  733155.,  763695.,  794475.,
      825495.,  746955.,  777975.,  809235.,  840735.,  648540.,  673740.,
      699132.,  724716.,  525021.,  544209.,  563541.,  583017.,  717836.,
      743612.,  769580.,  795740.,  1024912., 1059792., 1094928., 1130320.,
      1366740., 1410980., 1455540., 1500420., 1391540., 1436420., 1481620.,
      1527140., 1186832., 1223248., 1259920., 1296848., 945836.,  973532.,
      1001420., 1029500., 1197835., 1232695., 1267795., 1303135., 1688900.,
      1736020., 1783460., 1831220., 2226925., 2286625., 2346725., 2407225.,
      2265925., 2326425., 2387325., 2448625., 1911780., 1960820., 2010180.,
      2059860., 1508755., 1546015., 1583515., 1621255., 1326715., 1364455.,
      1402435., 1440655., 1868420., 1919380., 1970660., 2022260., 2460925.,
      2525425., 2590325., 2655625., 2499925., 2565225., 2630925., 2697025.,
      2106660., 2159540., 2212740., 2266260., 1660675., 1700815., 1741195.,
      1781815., 1455595., 1496215., 1537075., 1578175., 2047940., 2102740.,
      2157860., 2213300., 2694925., 2764225., 2833925., 2904025., 2733925.,
      2804025., 2874525., 2945425., 2301540., 2358260., 2415300., 2472660.,
      1812595., 1855615., 1898875., 1942375., 1584475., 1627975., 1671715.,
      1715695., 2227460., 2286100., 2345060., 2404340., 2928925., 3003025.,
      3077525., 3152425., 2967925., 3042825., 3118125., 3193825., 2496420.,
      2556980., 2617860., 2679060., 1964515., 2010415., 2056555., 2102935.,
      1669292., 1706204., 1743308., 1780604., 2323216., 2372944., 2422928.,
      2473168., 3026740., 3089540., 3152660., 3216100., 3064340., 3127780.,
      3191540., 3255620., 2554768., 2606032., 2657552., 2709328., 1994060.,
      2032892., 2071916., 2111132., 1564773., 1594041., 1623453., 1653009.,
      2163708., 2203116., 2242716., 2282508., 2801955., 2851695., 2901675.,
      2951895., 2834955., 2885175., 2935635., 2986335., 2349660., 2390220.,
      2430972., 2471916., 1823901., 1854609., 1885461., 1916457., 711717.,
      743289.,  775005.,  806865.,  1032444., 1074924., 1117596., 1160460.,
      1395555., 1449135., 1502955., 1557015., 1409355., 1463415., 1517715.,
      1572255., 1215324., 1258956., 1302780., 1346796., 977757.,  1010769.,
      1043925., 1077225., 1358348., 1402556., 1446956., 1491548., 1928080.,
      1987536., 2047248., 2107216., 2557140., 2632100., 2707380., 2782980.,
      2581940., 2657540., 2733460., 2809700., 2188304., 2249296., 2310544.,
      2372048., 1733804., 1779932., 1826252., 1872764., 2228875., 2286775.,
      2344915., 2403295., 3125060., 3202900., 3281060., 3359540., 4098925.,
      4197025., 4295525., 4394425., 4137925., 4236825., 4336125., 4435825.,
      3470820., 3550580., 3630660., 3711060., 2724115., 2784415., 2844955.,
      2905735., 2357755., 2418535., 2479555., 2540815., 3304580., 3386260.,
      3468260., 3550580., 4332925., 4435825., 4539125., 4642825., 4371925.,
      4475625., 4579725., 4684225., 3665700., 3749300., 3833220., 3917460.,
      2876035., 2939215., 3002635., 3066295., 2486635., 2550295., 2614195.,
      2678335., 3484100., 3569620., 3655460., 3741620., 4566925., 4674625.,
      4782725., 4891225., 4605925., 4714425., 4823325., 4932625., 3860580.,
      3948020., 4035780., 4123860., 3027955., 3094015., 3160315., 3226855.,
      2615515., 2682055., 2748835., 2815855., 3663620., 3752980., 3842660.,
      3932660., 4800925., 4913425., 5026325., 5139625., 4839925., 4953225.,
      5066925., 5181025., 4055460., 4146740., 4238340., 4330260., 3179875.,
      3248815., 3317995., 3387415., 2678444., 2733788., 2789324., 2845052.,
      3717904., 3792208., 3866768., 3941584., 4831540., 4925060., 5018900.,
      5113060., 4869140., 4963300., 5057780., 5152580., 4047760., 4123600.,
      4199696., 4276048., 3150668., 3207932., 3265388., 3323036., 2459877.,
      2502969., 2546205., 2589585., 3394044., 3451884., 3509916., 3568140.,
      4385955., 4458735., 4531755., 4605015., 4418955., 4492215., 4565715.,
      4639455., 3653724., 3712716., 3771900., 3831276., 2829597., 2874129.,
      2918805., 2963625.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      234.,    402.,    602.,    834.,    410.,    642.,    906.,    1202.,
      586.,    882.,    1210.,   1570.,   637.,    817.,    1013.,   1225.,
      178.,    442.,    738.,    1066.,   1348.,   2004.,   2724.,   3508.,
      2212.,   2996.,   3844.,   4756.,   3076.,   3988.,   4964.,   6004.,
      3940.,   4980.,   6084.,   7252.,   3106.,   3690.,   4306.,   4954.,
      1799.,   2531.,   3311.,   4139.,   6430.,   8086.,   9838.,   11686.,
      8494.,   10342.,  12286.,  14326.,  10558.,  12598.,  14734.,  16966.,
      12622.,  14854.,  17182.,  19606.,  8687.,   9899.,   11159.,  12467.,
      6148.,   7572.,   9060.,   10612.,  17864.,  20968.,  24200.,  27560.,
      21640.,  25000.,  28488.,  32104.,  25416.,  29032.,  32776.,  36648.,
      29192.,  33064.,  37064.,  41192.,  18660.,  20724.,  22852.,  25044.,
      14308.,  16372.,  18500.,  20692.,  36744.,  41128.,  45640.,  50280.,
      40520.,  45160.,  49928.,  54824.,  44296.,  49192.,  54216.,  59368.,
      48072.,  53224.,  58504.,  63912.,  29380.,  32084.,  34852.,  37684.,
      21863.,  23747.,  25679.,  27659.,  51166.,  55126.,  59182.,  63334.,
      54766.,  58918.,  63166.,  67510.,  58366.,  62710.,  67150.,  71686.,
      61966.,  66502.,  71134.,  75862.,  35663.,  38027.,  40439.,  42899.,
      22850.,  24330.,  25842.,  27386.,  51556.,  54644.,  57796.,  61012.,
      54468.,  57684.,  60964.,  64308.,  57380.,  60724.,  64132.,  67604.,
      60292.,  63764.,  67300.,  70900.,  33714.,  35514.,  37346.,  39210.,
      15989.,  16841.,  17709.,  18593.,  35354.,  37122.,  38922.,  40754.,
      37066.,  38898.,  40762.,  42658.,  38778.,  40674.,  42602.,  44562.,
      40490.,  42450.,  44442.,  46466.,  22253.,  23265.,  24293.,  25337.,
      197.,    473.,    765.,    1073.,   1466.,   2082.,   2730.,   3410.,
      3690.,   4370.,   5082.,   5826.,   5914.,   6658.,   7434.,   8242.,
      8138.,   8946.,   9786.,   10658.,  4925.,   5361.,   5813.,   6281.,
      5682.,   6458.,   7266.,   8106.,   14404.,  16084.,  17828.,  19636.,
      19364.,  21172.,  23044.,  24980.,  24324.,  26260.,  28260.,  30324.,
      29284.,  31348.,  33476.,  35668.,  16802.,  17898.,  19026.,  20186.,
      17735.,  19235.,  20783.,  22379.,  41374.,  44566.,  47854.,  51238.,
      49582.,  52966.,  56446.,  60022.,  57790.,  61366.,  65038.,  68806.,
      65998.,  69766.,  73630.,  77590.,  36911.,  38891.,  40919.,  42995.,
      37636.,  40084.,  42596.,  45172.,  84936.,  90088.,  95368.,  100776.,
      96904.,  102312., 107848., 113512., 108872., 114536., 120328., 126248.,
      120840., 126760., 132808., 138984., 66532.,  69620.,  72772.,  75988.,
      66276.,  69364.,  72516.,  75732.,  144776., 151208., 157768., 164456.,
      156744., 163432., 170248., 177192., 168712., 175656., 182728., 189928.,
      180680., 187880., 195208., 202664., 97732.,  101460., 105252., 109108.,
      68519.,  71171.,  73871.,  76619.,  147550., 153046., 158638., 164326.,
      157294., 162982., 168766., 174646., 167038., 172918., 178894., 184966.,
      176782., 182854., 189022., 195286., 94607.,  97739.,  100919., 104147.,
      59074.,  61066.,  63090.,  65146.,  126052., 130164., 134340., 138580.,
      133060., 137300., 141604., 145972., 140068., 144436., 148868., 153364.,
      147076., 151572., 156132., 160756., 78130.,  80442.,  82786.,  85162.,
      36661.,  37769.,  38893.,  40033.,  77722.,  80002.,  82314.,  84658.,
      81482.,  83826.,  86202.,  88610.,  85242.,  87650.,  90090.,  92562.,
      89002.,  91474.,  93978.,  96514.,  47021.,  48289.,  49573.,  50873.,
      389.,    921.,    1469.,   2033.,   2874.,   4002.,   5162.,   6354.,
      7146.,   8338.,   9562.,   10818.,  11418.,  12674.,  13962.,  15282.,
      15690.,  17010.,  18362.,  19746.,  9213.,   9905.,   10613.,  11337.,
      11186.,  12474.,  13794.,  15146.,  27460.,  30164.,  32932.,  35764.,
      36516.,  39348.,  42244.,  45204.,  45572.,  48532.,  51556.,  54644.,
      54628.,  57716.,  60868.,  64084.,  30498.,  32106.,  33746.,  35418.,
      33671.,  35939.,  38255.,  40619.,  76318.,  81046.,  85870.,  90790.,
      90670.,  95590.,  100606., 105718., 105022., 110134., 115342., 120646.,
      119374., 124678., 130078., 135574., 65135.,  67883.,  70679.,  73523.,
      69124.,  72596.,  76132.,  79732.,  152008., 159208., 166536., 173992.,
      172168., 179624., 187208., 194920., 192328., 200040., 207880., 215848.,
      212488., 220456., 228552., 236776., 114404., 118516., 122692., 126932.,
      118244., 122356., 126532., 130772., 252808., 261288., 269896., 278632.,
      272968., 281704., 290568., 299560., 293128., 302120., 311240., 320488.,
      313288., 322536., 331912., 341416., 166084., 170836., 175652., 180532.,
      115175., 118595., 122063., 125579., 243934., 250966., 258094., 265318.,
      259822., 267046., 274366., 281782., 275710., 283126., 290638., 298246.,
      291598., 299206., 306910., 314710., 153551., 157451., 161399., 165395.,
      95298.,  97802.,  100338., 102906., 200548., 205684., 210884., 216148.,
      211652., 216916., 222244., 227636., 222756., 228148., 233604., 239124.,
      233860., 239380., 244964., 250612., 122546., 125370., 128226., 131114.,
      57333.,  58697.,  60077.,  61473.,  120090., 122882., 125706., 128562.,
      125898., 128754., 131642., 134562., 131706., 134626., 137578., 140562.,
      137514., 140498., 143514., 146562., 71789.,  73313.,  74853.,  76409.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215598.,   246846.,   279246.,   312798.,   365160.,   409896.,
      456168.,   503976.,   558690.,   618450.,   680130.,   743730.,
      668610.,   732210.,   797730.,   865170.,   647400.,   701352.,
      756840.,   813864.,   573006.,   615774.,   659694.,   704766.,
      611368.,   669928.,   730024.,   791656.,   963808.,   1045984.,
      1130208.,  1216480.,  1397400.,  1505240.,  1615640.,  1728600.,
      1595160.,  1708120.,  1823640.,  1941720.,  1471200.,  1565664.,
      1662176.,  1760736.,  1253800.,  1327720.,  1403176.,  1480168.,
      1322690.,  1417010.,  1513250.,  1611410.,  2005720.,  2136600.,
      2270040.,  2406040.,  2818350.,  2988350.,  3161550.,  3337950.,
      3129550.,  3305950.,  3485550.,  3668350.,  2803800.,  2950040.,
      3098840.,  3250200.,  2333090.,  2446610.,  2562050.,  2679410.,
      2350850.,  2468210.,  2587490.,  2708690.,  3438040.,  3599640.,
      3763800.,  3930520.,  4685550.,  4893950.,  5105550.,  5320350.,
      4996750.,  5211550.,  5429550.,  5650750.,  4359000.,  4535960.,
      4715480.,  4897560.,  3545570.,  3682130.,  3820610.,  3961010.,
      3379010.,  3519410.,  3661730.,  3805970.,  4870360.,  5062680.,
      5257560.,  5455000.,  6552750.,  6799550.,  7049550.,  7302750.,
      6863950.,  7117150.,  7373550.,  7633150.,  5914200.,  6121880.,
      6332120.,  6544920.,  4758050.,  4917650.,  5079170.,  5242610.,
      4407170.,  4570610.,  4735970.,  4903250.,  6302680.,  6525720.,
      6751320.,  6979480.,  8419950.,  8705150.,  8993550.,  9285150.,
      8731150.,  9022750.,  9317550.,  9615550.,  7469400.,  7707800.,
      7948760.,  8192280.,  5970530.,  6153170.,  6337730.,  6524210.,
      5262760.,  5410408.,  5559592.,  5710312.,  7403232.,  7604192.,
      7807200.,  8012256.,  9743640.,  9999960.,  10258840., 10520280.,
      10043800., 10305240., 10569240., 10835800., 8467680.,  8680928.,
      8896224.,  9113568.,  6679336.,  6842344.,  7006888.,  7172968.,
      5341998.,  5465406.,  5589966.,  5715678.,  7446120.,  7613736.,
      7782888.,  7953576.,  9717090.,  9930450.,  10145730., 10362930.,
      9980610.,  10197810., 10416930., 10637970., 8342760.,  8519592.,
      8697960.,  8877864.,  6528846.,  6663774.,  6799854.,  6937086.,
      2938926.,  3080766.,  3223758.,  3367902.,  4291176.,  4483368.,
      4677096.,  4872360.,  5824610.,  6052306.,  6281922.,  6513458.,
      5858754.,  6073906.,  6290978.,  6509970.,  4946152.,  5114792.,
      5284968.,  5456680.,  3832910.,  3953502.,  4075246.,  4198142.,
      5489704.,  5646568.,  5804968.,  5964904.,  7730400.,  7943648.,
      8158944.,  8376288.,  9845400.,  10100696., 10358552., 10618968.,
      9639704.,  9883736.,  10130328., 10379480., 7889632.,  8082400.,
      8277216.,  8474080.,  5915048.,  6054504.,  6195496.,  6338024.,
      8110274.,  8290610.,  8472866.,  8657042.,  11285208., 11530776.,
      11778904., 12029592., 14038830., 14335806., 14635982., 14939358.,
      13618894., 13905886., 14196078., 14489470., 11014232., 11242392.,
      11473112., 11706392., 8149922.,  8316690.,  8485378.,  8655986.,
      6945026.,  7099250.,  7255394.,  7413458.,  9661912.,  9872664.,
      10085976., 10301848., 11594990., 11848446., 12105102., 12364958.,
      10847374., 11090846., 11337518., 11587390., 8596312.,  8789656.,
      8985560.,  9184024.,  6120418.,  6261074.,  6403650.,  6548146.,
      4796738.,  4924850.,  5054882.,  5186834.,  6727896.,  6903832.,
      7082328.,  7263384.,  7512750.,  7722686.,  7935822.,  8152158.,
      6437454.,  6637406.,  6840558.,  7046910.,  4867672.,  5026200.,
      5187288.,  5350936.,  3107874.,  3222418.,  3338882.,  3457266.,
      1665410.,  1767410.,  1871330.,  1977170.,  2483160.,  2624280.,
      2767960.,  2914200.,  3440750.,  3623550.,  3809550.,  3998750.,
      3751950.,  3941150.,  4133550.,  4329150.,  3322200.,  3478680.,
      3637720.,  3799320.,  2737250.,  2858450.,  2981570.,  3106610.,
      2577832.,  2676328.,  2776360.,  2877928.,  3692256.,  3827680.,
      3965152.,  4104672.,  4941080.,  5115480.,  5292440.,  5471960.,
      5241240.,  5420760.,  5602840.,  5787480.,  4494560.,  4642272.,
      4792032.,  4943840.,  3601192.,  3715048.,  3830440.,  3947368.,
      2959662.,  3046206.,  3133902.,  3222750.,  4171368.,  4289832.,
      4409832.,  4531368.,  5500770.,  5652690.,  5806530.,  5962290.,
      5764290.,  5920050.,  6077730.,  6237330.,  4871400.,  4999080.,
      5128296.,  5259048.,  3851598.,  3949662.,  4048878.,  4149246.,
      2031150.,  2136126.,  2242254.,  2349534.,  2982504.,  3125544.,
      3270120.,  3416232.,  4076130.,  4258770.,  4443330.,  4629810.,
      4186050.,  4372530.,  4560930.,  4751250.,  3657960.,  3810216.,
      3964008.,  4119336.,  2978382.,  3094878.,  3212526.,  3331326.,
      4015144.,  4172008.,  4330408.,  4490344.,  5764320.,  5977568.,
      6192864.,  6410208.,  7725720.,  7997400.,  8271640.,  8548440.,
      7923480.,  8200280.,  8479640.,  8761560.,  6796000.,  7021536.,
      7249120.,  7478752.,  5444008.,  5616232.,  5789992.,  5965288.,
      6806210.,  7023410.,  7242530.,  7463570.,  9644760.,  9939480.,
      10236760., 10536600., 12776750., 13151550., 13529550., 13910750.,
      13087950., 13469150., 13853550., 14241150., 11098200., 11408280.,
      11720920., 12036120., 8799650.,  9036050.,  9274370.,  9514610.,
      7824130.,  8047986.,  8273762.,  8501458.,  10991064., 11283736.,
      11578968., 11876760., 14416622., 14780670., 15147918., 15518366.,
      14520974., 14875038., 15232302., 15592766., 11957080., 12232344.,
      12510168., 12790552., 9391586.,  9601874.,  9814082.,  10028210.,
      8297282.,  8495026.,  8694690.,  8896274.,  11333848., 11591704.,
      11852120., 12115096., 14594222., 14914750., 15238478., 15565406.,
      14370894., 14681438., 14995182., 15312126., 11505240., 11745688.,
      11988696., 12234264., 9000482.,  9184658.,  9370754.,  9558770.,
      7787394.,  7959026.,  8132578.,  8308050.,  10365912., 10588952.,
      10814552., 11042712., 13133422., 13410430., 13690638., 13974046.,
      12582414., 12849438., 13119662., 13393086., 9742680.,  9948312.,
      10156504., 10367256., 7626338.,  7784402.,  7944386.,  8106290.,
      6235560.,  6366824.,  6499624.,  6633960.,  7972576.,  8140768.,
      8311008.,  8483296.,  9843992.,  10051160., 10260888., 10473176.,
      8954264.,  9150168.,  9348632.,  9549656.,  6460640.,  6608352.,
      6758112.,  6909920.,  5075752.,  5189608.,  5305000.,  5421928.,
      3415854.,  3498302.,  3581902.,  3666654.,  3866216.,  3968296.,
      4071912.,  4177064.,  4385122.,  4508370.,  4633538.,  4760626.,
      3131074.,  3241778.,  3354402.,  3468946.,  1400040.,  1478568.,
      1558632.,  1640232.,  1174350.,  1235550.,  1297902.,  1361406.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x6x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    1724.,    3036.,    4604.,    6428.,    3068.,    4892.,
      6972.,    9308.,    4412.,    6748.,    9340.,    12188.,   4926.,
      6350.,    7902.,    9582.,    1180.,    3260.,    5596.,    8188.,
      10168.,   15352.,   21048.,   27256.,   16952.,   23160.,   29880.,
      37112.,   23736.,   30968.,   38712.,   46968.,   30520.,   38776.,
      47544.,   56824.,   24284.,   28924.,   33820.,   38972.,   13690.,
      19498.,   25690.,   32266.,   49844.,   62996.,   76916.,   91604.,
      66164.,   80852.,   96308.,   112532.,  82484.,   98708.,   115700.,
      133460.,  98804.,   116564.,  135092.,  154388.,  68314.,   77962.,
      87994.,   98410.,   47800.,   59128.,   70968.,   83320.,   139888.,
      164592.,  190320.,  217072.,  169840.,  196592.,  224368.,  253168.,
      199792.,  228592.,  258416.,  289264.,  229744.,  260592.,  292464.,
      325360.,  147256.,  163704.,  180664.,  198136.,  112440.,  128888.,
      145848.,  163320.,  289648.,  324592.,  360560.,  397552.,  319600.,
      356592.,  394608.,  433648.,  349552.,  388592.,  428656.,  469744.,
      379504.,  420592.,  462704.,  505840.,  232376.,  253944.,  276024.,
      298616.,  173050.,  188074.,  203482.,  219274.,  405428.,  437012.,
      469364.,  502484.,  434036.,  467156.,  501044.,  535700.,  462644.,
      497300.,  532724.,  568916.,  491252.,  527444.,  564404.,  602132.,
      282970.,  301834.,  321082.,  340714.,  181340.,  193148.,  205212.,
      217532.,  409400.,  434040.,  459192.,  484856.,  432568.,  458232.,
      484408.,  511096.,  455736.,  482424.,  509624.,  537336.,  478904.,
      506616.,  534840.,  563576.,  267932.,  282300.,  296924.,  311804.,
      127070.,  133870.,  140798.,  147854.,  281084.,  295196.,  309564.,
      324188.,  294716.,  309340.,  324220.,  339356.,  308348.,  323484.,
      338876.,  354524.,  321980.,  337628.,  353532.,  369692.,  177022.,
      185102.,  193310.,  201646.,  1310.,    3502.,    5822.,    8270.,
      11132.,   16028.,   21180.,   26588.,   28860.,   34268.,   39932.,
      45852.,   46588.,   52508.,   58684.,   65116.,   64316.,   70748.,
      77436.,   84380.,   38974.,   42446.,   46046.,   49774.,   44700.,
      50876.,   57308.,   63996.,   113592.,  126968.,  140856.,  155256.,
      153144.,  167544.,  182456.,  197880.,  192696.,  208120.,  224056.,
      240504.,  232248.,  248696.,  265656.,  283128.,  133340.,  142076.,
      151068.,  160316.,  140410.,  152362.,  164698.,  177418.,  327860.,
      353300.,  379508.,  406484.,  393332.,  420308.,  448052.,  476564.,
      458804.,  487316.,  516596.,  546644.,  524276.,  554324.,  585140.,
      616724.,  293338.,  309130.,  325306.,  341866.,  298680.,  318200.,
      338232.,  358776.,  674416.,  715504.,  757616.,  800752.,  769904.,
      813040.,  857200.,  902384.,  865392.,  910576.,  956784.,  1004016.,
      960880.,  1008112., 1056368., 1105648., 529208.,  553848.,  579000.,
      604664.,  527160.,  551800.,  576952.,  602616.,  1151856., 1203184.,
      1255536., 1308912., 1247344., 1300720., 1355120., 1410544., 1342832.,
      1398256., 1454704., 1512176., 1438320., 1495792., 1554288., 1613808.,
      778168.,  807928.,  838200.,  868984.,  545530.,  566698.,  588250.,
      610186.,  1174964., 1218836., 1263476., 1308884., 1252724., 1298132.,
      1344308., 1391252., 1330484., 1377428., 1425140., 1473620., 1408244.,
      1456724., 1505972., 1555988., 753754.,  778762.,  804154.,  829930.,
      470620.,  486524.,  502684.,  519100.,  1004344., 1037176., 1070520.,
      1104376., 1060280., 1094136., 1128504., 1163384., 1116216., 1151096.,
      1186488., 1222392., 1172152., 1208056., 1244472., 1281400., 622748.,
      641212.,  659932.,  678908.,  292190.,  301038.,  310014.,  319118.,
      619516.,  637724.,  656188.,  674908.,  649532.,  668252.,  687228.,
      706460.,  679548.,  698780.,  718268.,  738012.,  709564.,  729308.,
      749308.,  769564.,  374910.,  385038.,  395294.,  405678.,  2590.,
      6830.,    11198.,   15694.,   21884.,   30876.,   40124.,   49628.,
      55996.,   65500.,   75260.,   85276.,   90108.,   100124.,  110396.,
      120924.,  124220.,  134748.,  145532.,  156572.,  73022.,   78542.,
      84190.,   89966.,   88220.,   98492.,   109020.,  119804.,  217016.,
      238584.,  260664.,  283256.,  289336.,  311928.,  335032.,  358648.,
      361656.,  385272.,  409400.,  434040.,  433976.,  458616.,  483768.,
      509432.,  242396.,  255228.,  268316.,  281660.,  267130.,  285226.,
      303706.,  322570.,  605876.,  643604.,  682100.,  721364.,  720500.,
      759764.,  799796.,  840596.,  835124.,  875924.,  917492.,  959828.,
      949748.,  992084.,  1035188., 1079060., 518362.,  540298.,  562618.,
      585322.,  549560.,  577272.,  605496.,  634232.,  1208944., 1266416.,
      1324912., 1384432., 1369968., 1429488., 1490032., 1551600., 1530992.,
      1592560., 1655152., 1718768., 1692016., 1755632., 1820272., 1885936.,
      911160.,  943992.,  977336.,  1011192., 941880.,  974712.,  1008056.,
      1041912., 2014064., 2081776., 2150512., 2220272., 2175088., 2244848.,
      2315632., 2387440., 2336112., 2407920., 2480752., 2554608., 2497136.,
      2570992., 2645872., 2721776., 1323960., 1361912., 1400376., 1439352.,
      918010.,  945322.,  973018.,  1001098., 1944500., 2000660., 2057588.,
      2115284., 2071412., 2129108., 2187572., 2246804., 2198324., 2257556.,
      2317556., 2378324., 2325236., 2386004., 2447540., 2509844., 1224538.,
      1255690., 1287226., 1319146., 759900.,  779900.,  800156.,  820668.,
      1599288., 1640312., 1681848., 1723896., 1687992., 1730040., 1772600.,
      1815672., 1776696., 1819768., 1863352., 1907448., 1865400., 1909496.,
      1954104., 1999224., 977564.,  1000124., 1022940., 1046012., 457310.,
      468206.,  479230.,  490382.,  957948.,  980252.,  1002812., 1025628.,
      1004348., 1027164., 1050236., 1073564., 1050748., 1074076., 1097660.,
      1121500., 1097148., 1120988., 1145084., 1169436., 572798.,  584974.,
      597278.,  609710.};
  const std::array<int, 4> in_shape = {{3, 8, 6, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351.,   560.,   820.,   940.,   1060.,  980.,   837.,   892.,   1360.,
      1920.,  2130.,  2340.,  2096.,  1744.,  1820.,  2700.,  3725.,  4050.,
      4375.,  3840.,  3140.,  3080.,  4450.,  6000.,  6325.,  6650.,  5730.,
      4610.,  4340.,  6200.,  8275.,  8600.,  8925.,  7620.,  6080.,  5600.,
      7950.,  10550., 10875., 11200., 9510.,  7550.,  6514.,  9120.,  11950.,
      12260., 12570., 10544., 8278.,  6516.,  9050.,  11770., 12040., 12310.,
      10250., 7992.,  3879.,  5600.,  7540.,  7660.,  7780.,  6692.,  5373.,
      7276.,  10320., 13680., 13890., 14100., 11952., 9472.,  11900., 16700.,
      21925., 22250., 22575., 18960., 14900., 13160., 18450., 24200., 24525.,
      24850., 20850., 16370., 14420., 20200., 26475., 26800., 27125., 22740.,
      17840., 15680., 21950., 28750., 29075., 29400., 24630., 19310., 16258.,
      22560., 29310., 29620., 29930., 24880., 19366., 15084., 20810., 26890.,
      27160., 27430., 22682., 17568., 7407.,  10640., 14260., 14380., 14500.,
      12404., 9909.,  13660., 19280., 25440., 25650., 25860., 21808., 17200.,
      21980., 30700., 40125., 40450., 40775., 34080., 26660., 23240., 32450.,
      42400., 42725., 43050., 35970., 28130., 24500., 34200., 44675., 45000.,
      45325., 37860., 29600., 25760., 35950., 46950., 47275., 47600., 39750.,
      31070., 26002., 36000., 46670., 46980., 47290., 39216., 30454., 23652.,
      32570., 42010., 42280., 42550., 35114., 27144.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   16.,   22.,   22.,   15.,   10.,   32.,   68.,
      89.,   110.,  96.,   60.,   42.,   114.,  219.,  264.,  309.,  252.,
      150.,  112.,  280.,  508.,  586.,  664.,  520.,  300.,  222.,  520.,
      898.,  976.,  1054., 800.,  450.,  306.,  681.,  1128., 1200., 1272.,
      933.,  510.,  307.,  668.,  1085., 1142., 1199., 864.,  465.,  210.,
      451.,  724.,  757.,  790.,  563.,  300.,  13.,   40.,   82.,   124.,
      166.,  130.,  75.,   94.,   224.,  392.,  485.,  578.,  432.,  240.,
      258.,  582.,  975.,  1128., 1281., 936.,  510.,  520.,  1144., 1876.,
      2098., 2320., 1672., 900.,  870.,  1864., 2986., 3208., 3430., 2432.,
      1290., 882.,  1869., 2964., 3144., 3324., 2337., 1230., 751.,  1580.,
      2489., 2618., 2747., 1920., 1005., 462.,  967.,  1516., 1585., 1654.,
      1151., 600.,  25.,   76.,   154.,  232.,  310.,  238.,  135.,  178.,
      416.,  716.,  881.,  1046., 768.,  420.,  474.,  1050., 1731., 1992.,
      2253., 1620., 870.,  928.,  2008., 3244., 3610., 3976., 2824., 1500.,
      1518., 3208., 5074., 5440., 5806., 4064., 2130., 1458., 3057., 4800.,
      5088., 5376., 3741., 1950., 1195., 2492., 3893., 4094., 4295., 2976.,
      1545., 714.,  1483., 2308., 2413., 2518., 1739., 900.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2529.,   4084.,   6035.,   6965.,   7895.,   7348.,   6309.,   6620.,
      10160.,  14420.,  16060.,  17700.,  15920.,  13292.,  13735.,  20460.,
      28325.,  30875.,  33425.,  29420.,  24115.,  23605.,  34180.,  46175.,
      48725.,  51275.,  44260.,  35665.,  33475.,  47900.,  64025.,  66575.,
      69125.,  59100.,  47215.,  43345.,  61620.,  81875.,  84425.,  86975.,
      73940.,  58765.,  50804.,  71184.,  93340.,  95780.,  98220.,  82448.,
      64772.,  51039.,  70924.,  92285.,  94415.,  96545.,  80428.,  62739.,
      29745.,  43060.,  58115.,  59045.,  59975.,  51700.,  41589.,  56348.,
      80048.,  106260., 107900., 109540., 92976.,  73772.,  92695.,  130220.,
      171125., 173675., 176225., 148140., 116515., 102565., 143940., 188975.,
      191525., 194075., 162980., 128065., 112435., 157660., 206825., 209375.,
      211925., 177820., 139615., 122305., 171380., 224675., 227225., 229775.,
      192660., 151165., 127412., 176912., 229980., 232420., 234860., 195344.,
      152132., 118575., 163660., 211565., 213695., 215825., 178540., 138339.,
      56961.,  82036.,  110195., 111125., 112055., 96052.,  76869.,  106076.,
      149936., 198100., 199740., 201380., 170032., 134252., 171655., 239980.,
      313925., 316475., 319025., 266860., 208915., 181525., 253700., 331775.,
      334325., 336875., 281700., 220465., 191395., 267420., 349625., 352175.,
      354725., 296540., 232015., 201265., 281140., 367475., 370025., 372575.,
      311380., 243565., 204020., 282640., 366620., 369060., 371500., 308240.,
      239492., 186111., 256396., 330845., 332975., 335105., 276652., 213939.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,    101.,   143.,   150.,   105.,   58.,    204.,
      454.,   610.,   766.,   684.,   434.,   279.,   786.,   1545.,  1887.,
      2229.,  1842.,  1107.,  788.,   2008.,  3692.,  4292.,  4892.,  3864.,
      2244.,  1628.,  3848.,  6692.,  7292.,  7892.,  6024.,  3404.,  2313.,
      5166.,  8583.,  9141.,  9699.,  7134.,  3909.,  2350.,  5124.,  8338.,
      8782.,  9226.,  6660.,  3590.,  1619.,  3482.,  5597.,  5855.,  6113.,
      4362.,  2327.,  77.,    262.,   563.,   893.,   1223.,  966.,   561.,
      682.,   1644.,  2902.,  3634.,  4366.,  3276.,  1826.,  1935.,  4386.,
      7377.,  8583.,  9789.,  7170.,  3915.,  3956.,  8728.,  14348., 16100.,
      17852., 12888., 6948.,  6716.,  14408., 23108., 24860., 26612., 18888.,
      10028., 6849.,  14526., 23055., 24477., 25899., 18222., 9597.,  5854.,
      12324., 19426., 20446., 21466., 15012., 7862.,  3611.,  7562.,  11861.,
      12407., 12953., 9018.,  4703.,  149.,   502.,   1067.,  1685.,  2303.,
      1782.,  1017.,  1306.,  3084.,  5350.,  6658.,  7966.,  5868.,  3218.,
      3591.,  7986.,  13209., 15279., 17349., 12498., 6723.,  7124.,  15448.,
      25004., 27908., 30812., 21912., 11652., 11804., 24968., 39524., 42428.,
      45332., 31752., 16652., 11385., 23886., 37527., 39813., 42099., 29310.,
      15285., 9358.,  19524., 30514., 32110., 33706., 23364., 12134., 5603.,
      11642., 18125., 18959., 19793., 13674., 7079.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19134.,   31112.,   46210.,   53530.,   60850.,   56840.,   48942.,
      50920.,   78432.,   111640.,  124600.,  137560.,  124000.,  103720.,
      106610.,  159160.,  220750.,  240950.,  261150.,  230200.,  188930.,
      184730.,  267800.,  362150.,  382350.,  402550.,  347800.,  280490.,
      262850.,  376440.,  503550.,  523750.,  543950.,  465400.,  372050.,
      340970.,  485080.,  644950.,  665150.,  685350.,  583000.,  463610.,
      401224.,  562400.,  737720.,  757080.,  776440.,  652000.,  512392.,
      403974.,  561512.,  730810.,  747730.,  764650.,  637160.,  497142.,
      232830.,  337544.,  456130.,  463450.,  470770.,  406280.,  327150.,
      443368.,  630368.,  837400.,  850360.,  863320.,  733280.,  582184.,
      731570.,  1028280., 1351950., 1372150., 1392350., 1171000., 921410.,
      809690.,  1136920., 1493350., 1513550., 1533750., 1288600., 1012970.,
      887810.,  1245560., 1634750., 1654950., 1675150., 1406200., 1104530.,
      965930.,  1354200., 1776150., 1796350., 1816550., 1523800., 1196090.,
      1008712., 1401056., 1821880., 1841240., 1860600., 1548000., 1205896.,
      940230.,  1298024., 1678330., 1695250., 1712170., 1416680., 1097910.,
      446526.,  643976.,  866050.,  873370.,  880690.,  755720.,  605358.,
      835816.,  1182304., 1563160., 1576120., 1589080., 1342560., 1060648.,
      1356530., 1897400., 2483150., 2503350., 2523550., 2111800., 1653890.,
      1434650., 2006040., 2624550., 2644750., 2664950., 2229400., 1745450.,
      1512770., 2114680., 2765950., 2786150., 2806350., 2347000., 1837010.,
      1590890., 2223320., 2907350., 2927550., 2947750., 2464600., 1928570.,
      1616200., 2239712., 2906040., 2925400., 2944760., 2444000., 1899400.,
      1476486., 2034536., 2625850., 2642770., 2659690., 2196200., 1698678.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     140.,    394.,    706.,    1018.,   1100.,   782.,    380.,
      1432.,   3284.,   4484.,   5684.,   5144.,   3292.,   2010.,   5796.,
      11550.,  14214.,  16878.,  14052.,  8490.,   5880.,   15152.,  28072.,
      32776.,  37480.,  29744.,  17336.,  12440.,  29552.,  51592.,  56296.,
      61000.,  46704.,  26456.,  17970.,  40212.,  66918.,  71310.,  75702.,
      55764.,  30594.,  18380.,  40120.,  65348.,  68852.,  72356.,  52280.,
      28204.,  12710.,  27356.,  44002.,  46042.,  48082.,  34332.,  18326.,
      510.,    1868.,   4138.,   6754.,   9370.,   7436.,   4334.,   5180.,
      12568.,  22292.,  28100.,  33908.,  25496.,  14236.,  14970.,  34020.,
      57342.,  66918.,  76494.,  56100.,  30666.,  30840.,  68144.,  112168.,
      126088., 140008., 101168., 54584.,  52760.,  113264., 181768., 195688.,
      209608., 148848., 79064.,  53970.,  114516., 181830., 193134., 204438.,
      143892., 75810.,  46220.,  97336.,  153476., 161588., 169700., 118712.,
      62188.,  28550.,  59804.,  93826.,  98170.,  102514., 71388.,  37238.,
      990.,    3596.,   7882.,   12802.,  17722.,  13772.,  7886.,   9980.,
      23704.,  41300.,  51716.,  62132.,  45848.,  25180.,  27930.,  62244.,
      103134., 119622., 136110., 98148.,  52842.,  55800.,  121136., 196264.,
      219400., 242536., 172592., 91832.,  93080.,  196976., 311944., 335080.,
      358216., 250992., 131672., 89970.,  188820., 296742., 314958., 333174.,
      232020., 121026., 74060.,  154552., 241604., 254324., 267044., 185144.,
      96172.,  44390.,  92252.,  143650., 150298., 156946., 108444., 56150.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1125.,   1404.,   1844.,   2240.,   2755.,   3280.,   3205.,   3760.,
      3655.,   4240.,   3428.,   3920.,   2961.,   3348.,   3052.,   3568.,
      4720.,   5440.,   6740.,   7680.,   7540.,   8520.,   8340.,   9360.,
      7536.,   8384.,   6316.,   6976.,   6455.,   7280.,   9660.,   10800.,
      13425.,  14900.,  14675.,  16200.,  15925.,  17500.,  14060.,  15360.,
      11555.,  12560.,  11285.,  12320.,  16380.,  17800.,  22175.,  24000.,
      23425.,  25300.,  24675.,  26600.,  21340.,  22920.,  17225.,  18440.,
      16115.,  17360.,  23100.,  24800.,  30925.,  33100.,  32175.,  34400.,
      33425.,  35700.,  28620.,  30480.,  22895.,  24320.,  20945.,  22400.,
      29820.,  31800.,  39675.,  42200.,  40925.,  43500.,  42175.,  44800.,
      35900.,  38040.,  28565.,  30200.,  24748.,  26056.,  34704.,  36480.,
      45540.,  47800.,  46740.,  49040.,  47940.,  50280.,  40272.,  42176.,
      31660.,  33112.,  24975.,  26064.,  34724.,  36200.,  45205.,  47080.,
      46255.,  48160.,  47305.,  49240.,  39428.,  41000.,  30771.,  31968.,
      14229.,  15516.,  20660.,  22400.,  27955.,  30160.,  28405.,  30640.,
      28855.,  31120.,  24932.,  26768.,  20097.,  21492.,  27244.,  29104.,
      38768.,  41280.,  51540.,  54720.,  52340.,  55560.,  53140.,  56400.,
      45168.,  47808.,  35884.,  37888.,  45095.,  47600.,  63420.,  66800.,
      83425.,  87700.,  84675.,  89000.,  85925.,  90300.,  72300.,  75840.,
      56915.,  59600.,  49925.,  52640.,  70140.,  73800.,  92175.,  96800.,
      93425.,  98100.,  94675.,  99400.,  79580.,  83400.,  62585.,  65480.,
      54755.,  57680.,  76860.,  80800.,  100925., 105900., 102175., 107200.,
      103425., 108500., 86860.,  90960.,  68255.,  71360.,  59585.,  62720.,
      83580.,  87800.,  109675., 115000., 110925., 116300., 112175., 117600.,
      94140.,  98520.,  73925.,  77240.,  62380.,  65032.,  86672.,  90240.,
      112740., 117240., 113940., 118480., 115140., 119720., 95824.,  99520.,
      74668.,  77464.,  58239.,  60336.,  80420.,  83240.,  104005., 107560.,
      105055., 108640., 106105., 109720., 87812.,  90728.,  68067.,  70272.,
      27333.,  29628.,  39476.,  42560.,  53155.,  57040.,  53605.,  57520.,
      54055.,  58000.,  46436.,  49616.,  37233.,  39636.,  51436.,  54640.,
      72816.,  77120.,  96340.,  101760., 97140.,  102600., 97940.,  103440.,
      82800.,  87232.,  65452.,  68800.,  83735.,  87920.,  117180., 122800.,
      153425., 160500., 154675., 161800., 155925., 163100., 130540., 136320.,
      102275., 106640., 88565.,  92960.,  123900., 129800., 162175., 169600.,
      163425., 170900., 164675., 172200., 137820., 143880., 107945., 112520.,
      93395.,  98000.,  130620., 136800., 170925., 178700., 172175., 180000.,
      173425., 181300., 145100., 151440., 113615., 118400., 98225.,  103040.,
      137340., 143800., 179675., 187800., 180925., 189100., 182175., 190400.,
      152380., 159000., 119285., 124280., 100012., 104008., 138640., 144000.,
      179940., 186680., 181140., 187920., 182340., 189160., 151376., 156864.,
      117676., 121816., 91503.,  94608.,  126116., 130280., 162805., 168040.,
      163855., 169120., 164905., 170200., 136196., 140456., 105363., 108576.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     6.,     16.,    19.,    40.,    37.,    64.,    55.,
      88.,    62.,    88.,    45.,    60.,    18.,    40.,    76.,    128.,
      182.,   272.,   254.,   356.,   326.,   440.,   300.,   384.,   194.,
      240.,   111.,   168.,   330.,   456.,   669.,   876.,   831.,   1056.,
      993.,   1236.,  834.,   1008.,  507.,   600.,   340.,   448.,   888.,
      1120.,  1660.,  2032.,  1948.,  2344.,  2236.,  2656.,  1784.,  2080.,
      1044.,  1200.,  740.,   888.,   1768.,  2080.,  3100.,  3592.,  3388.,
      3904.,  3676.,  4216.,  2824.,  3200.,  1604.,  1800.,  1089.,  1224.,
      2442.,  2724.,  4071.,  4512.,  4341.,  4800.,  4611.,  5088.,  3402.,
      3732.,  1869.,  2040.,  1122.,  1228.,  2452.,  2672.,  3998.,  4340.,
      4214.,  4568.,  4430.,  4796.,  3204.,  3456.,  1730.,  1860.,  779.,
      840.,   1678.,  1804.,  2701.,  2896.,  2827.,  3028.,  2953.,  3160.,
      2110.,  2252.,  1127.,  1200.,  25.,    52.,    102.,   160.,   235.,
      328.,   397.,   496.,   559.,   664.,   446.,   520.,   261.,   300.,
      306.,   376.,   748.,   896.,   1334.,  1568.,  1694.,  1940.,  2054.,
      2312.,  1548.,  1728.,  866.,   960.,   903.,   1032.,  2058.,  2328.,
      3477.,  3900.,  4071.,  4512.,  4665.,  5124.,  3426.,  3744.,  1875.,
      2040.,  1876.,  2080.,  4152.,  4576.,  6844.,  7504.,  7708.,  8392.,
      8572.,  9280.,  6200.,  6688.,  3348.,  3600.,  3236.,  3480.,  6952.,
      7456.,  11164., 11944., 12028., 12832., 12892., 13720., 9160.,  9728.,
      4868.,  5160.,  3321.,  3528.,  7050.,  7476.,  11199., 11856., 11901.,
      12576., 12603., 13296., 8874.,  9348.,  4677.,  4920.,  2850.,  3004.,
      6004.,  6320.,  9470.,  9956.,  9974.,  10472., 10478., 10988., 7332.,
      7680.,  3842.,  4020.,  1763.,  1848.,  3694.,  3868.,  5797.,  6064.,
      6067.,  6340.,  6337.,  6616.,  4414.,  4604.,  2303.,  2400.,  49.,
      100.,   198.,   304.,   451.,   616.,   757.,   928.,   1063.,  1240.,
      830.,   952.,   477.,   540.,   594.,   712.,   1420.,  1664.,  2486.,
      2864.,  3134.,  3524.,  3782.,  4184.,  2796.,  3072.,  1538.,  1680.,
      1695.,  1896.,  3786.,  4200.,  6285.,  6924.,  7311.,  7968.,  8337.,
      9012.,  6018.,  6480.,  3243.,  3480.,  3412.,  3712.,  7416.,  8032.,
      12028., 12976., 13468., 14440., 14908., 15904., 10616., 11296., 5652.,
      6000.,  5732.,  6072.,  12136., 12832., 19228., 20296., 20668., 21760.,
      22108., 23224., 15496., 16256., 8132.,  8520.,  5553.,  5832.,  11658.,
      12228., 18327., 19200., 19461., 20352., 20595., 21504., 14346., 14964.,
      7485.,  7800.,  4578.,  4780.,  9556.,  9968.,  14942., 15572., 15734.,
      16376., 16526., 17180., 11460., 11904., 5954.,  6180.,  2747.,  2856.,
      5710.,  5932.,  8893.,  9232.,  9307.,  9652.,  9721.,  10072., 6718.,
      6956.,  3479.,  3600.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8469.,    10665.,   13996.,   17116.,   21035.,   25175.,   24575.,
      28955.,   28115.,   32735.,   26476.,   30364.,   22941.,   26001.,
      23420.,   27500.,   36368.,   42064.,   52100.,   59540.,   58420.,
      66180.,   64740.,   72820.,   58640.,   65360.,   49244.,   54476.,
      50035.,   56575.,   75060.,   84100.,   104525.,  116225.,  114425.,
      126525.,  124325.,  136825.,  109940.,  120260.,  90475.,   98455.,
      88255.,   96475.,   128260.,  139540.,  173825.,  188325.,  183725.,
      198625.,  193625.,  208925.,  167620.,  180180.,  135415.,  145075.,
      126475.,  136375.,  181460.,  194980.,  243125.,  260425.,  253025.,
      270725.,  262925.,  281025.,  225300.,  240100.,  180355.,  191695.,
      164695.,  176275.,  234660.,  250420.,  312425.,  332525.,  322325.,
      342825.,  332225.,  353125.,  282980.,  300020.,  225295.,  238315.,
      195404.,  205820.,  274128.,  288272.,  359860.,  377860.,  369380.,
      387700.,  378900.,  397540.,  318416.,  333584.,  250412.,  261980.,
      197649.,  206325.,  274876.,  286636.,  357935.,  372875.,  366275.,
      381455.,  374615.,  390035.,  312316.,  324844.,  243801.,  253341.,
      111285.,  121545.,  161836.,  175708.,  219275.,  236855.,  222815.,
      240635.,  226355.,  244415.,  195820.,  210460.,  158013.,  169137.,
      214268.,  229100.,  305168.,  325200.,  406020.,  431380.,  412340.,
      438020.,  418660.,  444660.,  356112.,  377168.,  283100.,  299084.,
      355795.,  375775.,  500660.,  527620.,  658925.,  693025.,  668825.,
      703325.,  678725.,  713625.,  571380.,  599620.,  449995.,  471415.,
      394015.,  415675.,  553860.,  583060.,  728225.,  765125.,  738125.,
      775425.,  748025.,  785725.,  629060.,  659540.,  494935.,  518035.,
      432235.,  455575.,  607060.,  638500.,  797525.,  837225.,  807425.,
      847525.,  817325.,  857825.,  686740.,  719460.,  539875.,  564655.,
      470455.,  495475.,  660260.,  693940.,  866825.,  909325.,  876725.,
      919625.,  886625.,  929925.,  744420.,  779380.,  584815.,  611275.,
      493772.,  514940.,  686288.,  714768.,  892980.,  928900.,  902500.,
      938740.,  912020.,  948580.,  759248.,  788752.,  591788.,  614108.,
      461745.,  478485.,  637756.,  660268.,  824975.,  853355.,  833315.,
      861935.,  841655.,  870515.,  696700.,  719980.,  540153.,  557757.,
      214101.,  232425.,  309676.,  334300.,  417515.,  448535.,  421055.,
      452315.,  424595.,  456095.,  365164.,  390556.,  293085.,  312273.,
      405116.,  430700.,  573968.,  608336.,  759940.,  803220.,  766260.,
      809860.,  772580.,  816500.,  653584.,  688976.,  516956.,  543692.,
      661555.,  694975.,  926260.,  971140.,  1213325., 1269825., 1223225.,
      1280125., 1233125., 1290425., 1032820., 1078980., 809515.,  844375.,
      699775.,  734875.,  979460.,  1026580., 1282625., 1341925., 1292525.,
      1352225., 1302425., 1362525., 1090500., 1138900., 854455.,  890995.,
      737995.,  774775.,  1032660., 1082020., 1351925., 1414025., 1361825.,
      1424325., 1371725., 1434625., 1148180., 1198820., 899395.,  937615.,
      776215.,  814675.,  1085860., 1137460., 1421225., 1486125., 1431125.,
      1496425., 1441025., 1506725., 1205860., 1258740., 944335.,  984235.,
      792140.,  824060.,  1098448., 1141264., 1426100., 1479940., 1435620.,
      1489780., 1445140., 1499620., 1200080., 1243920., 933164.,  966236.,
      725841.,  750645.,  1000636., 1033900., 1292015., 1333835., 1300355.,
      1342415., 1308695., 1350995., 1081084., 1115116., 836505.,  862173.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     34.,     106.,    119.,    275.,    251.,    455.,
      383.,    635.,    450.,    650.,    333.,    449.,    106.,    274.,
      516.,    916.,    1294.,   1990.,   1846.,   2638.,   2398.,   3286.,
      2244.,   2900.,   1466.,   1826.,   783.,    1227.,   2406.,   3390.,
      4965.,   6585.,   6225.,   7989.,   7485.,   9393.,   6342.,   7710.,
      3879.,   4611.,   2516.,   3364.,   6664.,   8488.,   12572.,  15500.,
      14828.,  17948.,  17084.,  20396.,  13704.,  16040.,  8052.,   9284.,
      5636.,   6804.,   13544.,  16008.,  23852.,  27740.,  26108.,  30188.,
      28364.,  32636.,  21864.,  24840.,  12452.,  14004.,  8451.,   9519.,
      18990.,  21222.,  31713.,  35205.,  33837.,  37473.,  35961.,  39741.,
      26574.,  29190.,  14619.,  15975.,  8770.,   9610.,   19188.,  20932.,
      31318.,  34030.,  33022.,  35830.,  34726.,  37630.,  25140.,  27140.,
      13586.,  14618.,  6113.,   6597.,   13178.,  14178.,  21227.,  22775.,
      22223.,  23819.,  23219.,  24863.,  16602.,  17730.,  8873.,   9453.,
      149.,    361.,    706.,    1162.,   1703.,   2435.,   2987.,   3767.,
      4271.,   5099.,   3426.,   4010.,   2013.,   2321.,   2314.,   2866.,
      5700.,   6868.,   10222.,  12070.,  13078.,  15022.,  15934.,  17974.,
      12036.,  13460.,  6746.,   7490.,   6975.,   7995.,   15942.,  18078.,
      26997.,  30345.,  31713.,  35205.,  36429.,  40065.,  26790.,  29310.,
      14679.,  15987.,  14612.,  16228.,  32392.,  35752.,  53468.,  58700.,
      60332.,  65756.,  67196.,  72812.,  48648.,  52520.,  26292.,  28292.,
      25412.,  27348.,  54632.,  58632.,  87788.,  93980.,  94652.,  101036.,
      101516., 108092., 72168.,  76680.,  38372.,  40692.,  26163.,  27807.,
      55566.,  58950.,  88305.,  93525.,  93885.,  99249.,  99465.,  104973.,
      70062.,  73830.,  36939.,  38871.,  22498.,  23722.,  47412.,  49924.,
      74806.,  78670.,  78814.,  82774.,  82822.,  86878.,  57972.,  60740.,
      30386.,  31802.,  13937.,  14613.,  29210.,  30594.,  45851.,  47975.,
      47999.,  50171.,  50147.,  52367.,  34938.,  36450.,  18233.,  19005.,
      293.,    697.,    1378.,   2218.,   3287.,   4595.,   5723.,   7079.,
      8159.,   9563.,   6402.,   7370.,   3693.,   4193.,   4522.,   5458.,
      10884.,  12820.,  19150.,  22150.,  24310.,  27406.,  29470.,  32662.,
      21828.,  24020.,  12026.,  13154.,  13167.,  14763.,  29478.,  32766.,
      49029.,  54105.,  57201.,  62421.,  65373.,  70737.,  47238.,  50910.,
      25479.,  27363.,  26708.,  29092.,  58120.,  63016.,  94364.,  101900.,
      105836., 113564., 117308., 125228., 83592.,  89000.,  44532.,  47300.,
      45188.,  47892.,  95720.,  101256., 151724., 160220., 163196., 171884.,
      174668., 183548., 122472., 128520., 64292.,  67380.,  43875.,  46095.,
      92142.,  96678.,  144897., 151845., 153933., 161025., 162969., 170205.,
      113550., 118470., 59259.,  61767.,  36226.,  37834.,  75636.,  78916.,
      118294., 123310., 124606., 129718., 130918., 136126., 90804.,  94340.,
      47186.,  48986.,  21761.,  22629.,  45242.,  47010.,  70475.,  73175.,
      73775.,  76523.,  77075.,  79871.,  53274.,  55170.,  27593.,  28557.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65646.,    83070.,    108968.,   133736.,   164290.,   197170.,
      192370.,   227170.,   220450.,   257170.,   208040.,   238952.,
      180558.,   204894.,   183400.,   215848.,   285408.,   330720.,
      409560.,   468760.,   459800.,   521560.,   510040.,   574360.,
      462560.,   516064.,   388840.,   430504.,   393890.,   445970.,
      591640.,   663640.,   824750.,   917950.,   903550.,   999950.,
      982350.,   1081950.,  869400.,   951640.,   715970.,   779570.,
      697970.,   763490.,   1015000.,  1104920.,  1376350.,  1491950.,
      1455150.,  1573950.,  1533950.,  1655950.,  1328600.,  1428760.,
      1073810.,  1150850.,  1002050.,  1081010.,  1438360.,  1546200.,
      1927950.,  2065950.,  2006750.,  2147950.,  2085550.,  2229950.,
      1787800.,  1905880.,  1431650.,  1522130.,  1306130.,  1398530.,
      1861720.,  1987480.,  2479550.,  2639950.,  2558350.,  2721950.,
      2637150.,  2803950.,  2247000.,  2383000.,  1789490.,  1893410.,
      1552936.,  1636072.,  2179040.,  2291936.,  2861080.,  3004760.,
      2936920.,  3083160.,  3012760.,  3161560.,  2532320.,  2653408.,
      1991848.,  2084200.,  1572606.,  1641870.,  2187368.,  2281256.,
      2848690.,  2967970.,  2915170.,  3036370.,  2981650.,  3104770.,
      2486120.,  2586152.,  1940958.,  2017134.,  880110.,   962046.,
      1280936.,  1391720.,  1736770.,  1877170.,  1764850.,  1907170.,
      1792930.,  1937170.,  1552040.,  1668968.,  1253070.,  1341918.,
      1699432.,  1817896.,  2421472.,  2581472.,  3223000.,  3425560.,
      3273240.,  3478360.,  3323480.,  3531160.,  2828000.,  2996192.,
      2248936.,  2376616.,  2826530.,  2986130.,  3978520.,  4193880.,
      5237550.,  5509950.,  5316350.,  5591950.,  5395150.,  5673950.,
      4543000.,  4768600.,  3578690.,  3749810.,  3130610.,  3303650.,
      4401880.,  4635160.,  5789150.,  6083950.,  5867950.,  6165950.,
      5946750.,  6247950.,  5002200.,  5245720.,  3936530.,  4121090.,
      3434690.,  3621170.,  4825240.,  5076440.,  6340750.,  6657950.,
      6419550.,  6739950.,  6498350.,  6821950.,  5461400.,  5722840.,
      4294370.,  4492370.,  3738770.,  3938690.,  5248600.,  5517720.,
      6892350.,  7231950.,  6971150.,  7313950.,  7049950.,  7395950.,
      5920600.,  6199960.,  4652210.,  4863650.,  3929128.,  4098280.,
      5461984.,  5689568.,  7108120.,  7395160.,  7183960.,  7473560.,
      7259800.,  7551960.,  6044640.,  6280416.,  4712104.,  4890472.,
      3677310.,  3811086.,  5079656.,  5259560.,  6571570.,  6798370.,
      6638050.,  6866770.,  6704530.,  6935170.,  5550440.,  5736488.,
      4303710.,  4444398.,  1694574.,  1841022.,  2452904.,  2649704.,
      3309250.,  3557170.,  3337330.,  3587170.,  3365410.,  3617170.,
      2896040.,  3098984.,  2325582.,  2478942.,  3215464.,  3419944.,
      4557536.,  4832224.,  6036440.,  6382360.,  6086680.,  6435160.,
      6136920.,  6487960.,  5193440.,  5476320.,  4109032.,  4322728.,
      5259170.,  5526290.,  7365400.,  7724120.,  9650350.,  10101950.,
      9729150.,  10183950., 9807950.,  10265950., 8216600.,  8585560.,
      6441410.,  6720050.,  5563250.,  5843810.,  7788760.,  8165400.,
      10201950., 10675950., 10280750., 10757950., 10359550., 10839950.,
      8675800.,  9062680.,  6799250.,  7091330.,  5867330.,  6161330.,
      8212120.,  8606680.,  10753550., 11249950., 10832350., 11331950.,
      10911150., 11413950., 9135000.,  9539800.,  7157090.,  7462610.,
      6171410.,  6478850.,  8635480.,  9047960.,  11305150., 11823950.,
      11383950., 11905950., 11462750., 11987950., 9594200.,  10016920.,
      7514930.,  7833890.,  6305320.,  6560488.,  8744928.,  9087200.,
      11355160., 11785560., 11431000., 11863960., 11506840., 11942360.,
      9556960.,  9907424.,  7432360.,  7696744.,  5782014.,  5980302.,
      7971944.,  8237864.,  10294450., 10628770., 10360930., 10697170.,
      10427410., 10765570., 8614760.,  8886824.,  6666462.,  6871662.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     220.,     764.,    826.,     2026.,    1834.,
      3418.,    2842.,    4810.,    3420.,   4988.,    2558.,    3470.,
      700.,     2012.,    3768.,    6904.,   9716.,    15188.,   14036.,
      20276.,   18356.,   25364.,   17336.,  22520.,   11388.,   14236.,
      5850.,    9354.,    18324.,   26100.,  38190.,   51006.,   48126.,
      62094.,   58062.,   73182.,   49428.,  60276.,   30330.,   36138.,
      19320.,   26040.,   51568.,   66032.,  97768.,   121000.,  115624.,
      140392.,  133480.,  159784.,  107376., 125936.,  63224.,   73016.,
      43960.,   53240.,   105968.,  125552., 187048.,  217960.,  204904.,
      237352.,  222760.,  256744.,  172016., 195696.,  98104.,   110456.,
      66570.,   75066.,   149748.,  167508., 250302.,  278094.,  267150.,
      296094.,  283998.,  314094.,  210036., 230868.,  115626.,  126426.,
      69340.,   76028.,   151800.,  165688., 247892.,  269492.,  261428.,
      283796.,  274964.,  298100.,  199160., 215096.,  107676.,  115900.,
      48430.,   52286.,   104444.,  112412., 168298.,  180634.,  176218.,
      188938.,  184138.,  197242.,  131708., 140700.,  70414.,   75038.,
      990.,     2670.,    5212.,    8828.,   12922.,   18730.,   23146.,
      29338.,   33370.,   39946.,   26844.,  31484.,   15806.,   18254.,
      17980.,   22364.,   44472.,   53752.,  79988.,   94676.,   102740.,
      118196.,  125492.,  141716.,  94904.,  106232.,  53244.,   59164.,
      54810.,   62922.,   125460.,  142452., 212718.,  239358.,  250302.,
      278094.,  287886.,  316830.,  211860., 231924.,  116154.,  126570.,
      115320.,  128184.,  255856.,  282608., 422632.,  464296.,  477352.,
      520552.,  532072.,  576808.,  385392., 416240.,  208376.,  224312.,
      201400.,  216824.,  433136.,  465008., 696232.,  745576.,  750952.,
      801832.,  805672.,  858088.,  572912., 608880.,  304696.,  323192.,
      207690.,  220794.,  441204.,  468180., 701310.,  742926.,  745806.,
      788574.,  790302.,  834222.,  556788., 586836.,  293610.,  309018.,
      178780.,  188540.,  376824.,  396856., 594644.,  625460.,  626612.,
      658196.,  658580.,  690932.,  461048., 483128.,  241692.,  252988.,
      110830.,  116222.,  232316.,  243356., 364714.,  381658.,  381850.,
      399178.,  398986.,  416698.,  278012., 290076.,  145102.,  151262.,
      1950.,    5166.,    10204.,   16892.,  25018.,   35434.,   44458.,
      55258.,   63898.,   75082.,   50268.,  57980.,   29054.,   33038.,
      35260.,   42716.,   85176.,   100600., 150260.,  174164.,  191444.,
      216116.,  232628.,  258068.,  172472., 189944.,  95100.,   104092.,
      103770.,  116490.,  232596.,  258804., 387246.,  427710.,  452478.,
      494094.,  517710.,  560478.,  374292., 403572.,  201978.,  217002.,
      211320.,  230328.,  460144.,  499184., 747496.,  807592.,  839080.,
      900712.,  930664.,  993832.,  663408., 706544.,  353528.,  375608.,
      358840.,  380408.,  760304.,  804464., 1205416., 1273192., 1297000.,
      1366312., 1388584., 1459432., 973808., 1022064., 511288.,  535928.,
      348810.,  366522.,  732660.,  768852., 1152318., 1207758., 1224462.,
      1281054., 1296606., 1354350., 903540., 942804.,  471594.,  491610.,
      288220.,  301052.,  601848.,  628024., 941396.,  981428.,  991796.,
      1032596., 1042196., 1083764., 722936., 751160.,  375708.,  390076.,
      173230.,  180158.,  360188.,  374300., 561130.,  582682.,  587482.,
      609418.,  613834.,  636154.,  424316., 439452.,  219790.,  227486.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3969.,   4500.,   5049.,   5616.,   6620.,   7376.,   8156.,   8960.,
      10015.,  11020.,  12055.,  13120.,  11755.,  12820.,  13915.,  15040.,
      13495.,  14620.,  15775.,  16960.,  12764.,  13712.,  14684.,  15680.,
      11097.,  11844.,  12609.,  13392.,  11212.,  12208.,  13228.,  14272.,
      17488.,  18880.,  20304.,  21760.,  25140.,  26960.,  28820.,  30720.,
      28260.,  30160.,  32100.,  34080.,  31380.,  33360.,  35380.,  37440.,
      28496.,  30144.,  31824.,  33536.,  23980.,  25264.,  26572.,  27904.,
      24215.,  25820.,  27455.,  29120.,  36420.,  38640.,  40900.,  43200.,
      50825.,  53700.,  56625.,  59600.,  55725.,  58700.,  61725.,  64800.,
      60625.,  63700.,  66825.,  70000.,  53700.,  56240.,  58820.,  61440.,
      44255.,  46220.,  48215.,  50240.,  43115.,  45140.,  47195.,  49280.,
      62740.,  65520.,  68340.,  71200.,  85125.,  88700.,  92325.,  96000.,
      90025.,  93700.,  97425.,  101200., 94925.,  98700.,  102525., 106400.,
      82260.,  85360.,  88500.,  91680.,  66515.,  68900.,  71315.,  73760.,
      62015.,  64460.,  66935.,  69440.,  89060.,  92400.,  95780.,  99200.,
      119425., 123700., 128025., 132400., 124325., 128700., 133125., 137600.,
      129225., 133700., 138225., 142800., 110820., 114480., 118180., 121920.,
      88775.,  91580.,  94415.,  97280.,  80915.,  83780.,  86675.,  89600.,
      115380., 119280., 123220., 127200., 153725., 158700., 163725., 168800.,
      158625., 163700., 168825., 174000., 163525., 168700., 173925., 179200.,
      139380., 143600., 147860., 152160., 111035., 114260., 117515., 120800.,
      96412.,  98992.,  101596., 104224., 135312., 138816., 142352., 145920.,
      177700., 182160., 186660., 191200., 182420., 186960., 191540., 196160.,
      187140., 191760., 196420., 201120., 157328., 161088., 164880., 168704.,
      123772., 126640., 129532., 132448., 97749.,  99900.,  102069., 104256.,
      135980., 138896., 141836., 144800., 177115., 180820., 184555., 188320.,
      181255., 185020., 188815., 192640., 185395., 189220., 193075., 196960.,
      154604., 157712., 160844., 164000., 120717., 123084., 125469., 127872.,
      54369.,  56916.,  59481.,  62064.,  79196.,  82640.,  86108.,  89600.,
      107455., 111820., 116215., 120640., 109195., 113620., 118075., 122560.,
      110935., 115420., 119935., 124480., 96092.,  99728.,  103388., 107072.,
      77625.,  80388.,  83169.,  85968.,  105292., 108976., 112684., 116416.,
      150096., 155072., 160080., 165120., 199860., 206160., 212500., 218880.,
      202980., 209360., 215780., 222240., 206100., 212560., 219060., 225600.,
      175440., 180672., 185936., 191232., 139564., 143536., 147532., 151552.,
      175415., 180380., 185375., 190400., 246980., 253680., 260420., 267200.,
      325225., 333700., 342225., 350800., 330125., 338700., 347325., 356000.,
      335025., 343700., 352425., 361200., 282180., 289200., 296260., 303360.,
      222335., 227660., 233015., 238400., 194315., 199700., 205115., 210560.,
      273300., 280560., 287860., 295200., 359525., 368700., 377925., 387200.,
      364425., 373700., 383025., 392400., 369325., 378700., 388125., 397600.,
      310740., 318320., 325940., 333600., 244595., 250340., 256115., 261920.,
      213215., 219020., 224855., 230720., 299620., 307440., 315300., 323200.,
      393825., 403700., 413625., 423600., 398725., 408700., 418725., 428800.,
      403625., 413700., 423825., 434000., 339300., 347440., 355620., 363840.,
      266855., 273020., 279215., 285440., 232115., 238340., 244595., 250880.,
      325940., 334320., 342740., 351200., 428125., 438700., 449325., 460000.,
      433025., 443700., 454425., 465200., 437925., 448700., 459525., 470400.,
      367860., 376560., 385300., 394080., 289115., 295700., 302315., 308960.,
      244252., 249520., 254812., 260128., 339600., 346688., 353808., 360960.,
      442020., 450960., 459940., 468960., 446740., 455760., 464820., 473920.,
      451460., 460560., 469700., 478880., 375952., 383296., 390672., 398080.,
      293116., 298672., 304252., 309856., 228789., 232956., 237141., 241344.,
      316076., 321680., 327308., 332960., 408955., 416020., 423115., 430240.,
      413095., 420220., 427375., 434560., 417235., 424420., 431635., 438880.,
      345452., 351248., 357068., 362912., 267885., 272268., 276669., 281088.,
      104769., 109332., 113913., 118512., 151772., 157904., 164060., 170240.,
      204895., 212620., 220375., 228160., 206635., 214420., 222235., 230080.,
      208375., 216220., 224095., 232000., 179420., 185744., 192092., 198464.,
      144153., 148932., 153729., 158544., 199372., 205744., 212140., 218560.,
      282704., 291264., 299856., 308480., 374580., 385360., 396180., 407040.,
      377700., 388560., 399460., 410400., 380820., 391760., 402740., 413760.,
      322384., 331200., 340048., 348928., 255148., 261808., 268492., 275200.,
      326615., 334940., 343295., 351680., 457540., 468720., 479940., 491200.,
      599625., 613700., 627825., 642000., 604525., 618700., 632925., 647200.,
      609425., 623700., 638025., 652400., 510660., 522160., 533700., 545280.,
      400415., 409100., 417815., 426560., 345515., 354260., 363035., 371840.,
      483860., 495600., 507380., 519200., 633925., 648700., 663525., 678400.,
      638825., 653700., 668625., 683600., 643725., 658700., 673725., 688800.,
      539220., 551280., 563380., 575520., 422675., 431780., 440915., 450080.,
      364415., 373580., 382775., 392000., 510180., 522480., 534820., 547200.,
      668225., 683700., 699225., 714800., 673125., 688700., 704325., 720000.,
      678025., 693700., 709425., 725200., 567780., 580400., 593060., 605760.,
      444935., 454460., 464015., 473600., 383315., 392900., 402515., 412160.,
      536500., 549360., 562260., 575200., 702525., 718700., 734925., 751200.,
      707425., 723700., 740025., 756400., 712325., 728700., 745125., 761600.,
      596340., 609520., 622740., 636000., 467195., 477140., 487115., 497120.,
      392092., 400048., 408028., 416032., 543888., 554560., 565264., 576000.,
      706340., 719760., 733220., 746720., 711060., 724560., 738100., 751680.,
      715780., 729360., 742980., 756640., 594576., 605504., 616464., 627456.,
      462460., 470704., 478972., 487264., 359829., 366012., 372213., 378432.,
      496172., 504464., 512780., 521120., 640795., 651220., 661675., 672160.,
      644935., 655420., 665935., 676480., 649075., 659620., 670195., 680800.,
      536300., 544784., 553292., 561824., 415053., 421452., 427869., 434304.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     9.,     16.,    10.,    24.,    42.,    64.,    43.,
      76.,    115.,   160.,   103.,   148.,   199.,   256.,   163.,   220.,
      283.,   352.,   202.,   248.,   298.,   352.,   153.,   180.,   209.,
      240.,   34.,    72.,    114.,   160.,   212.,   304.,   404.,   512.,
      566.,   728.,   902.,   1088.,  830.,   1016.,  1214.,  1424.,  1094.,
      1304.,  1526.,  1760.,  1044.,  1200.,  1364.,  1536.,  690.,   776.,
      866.,   960.,   339.,   444.,   555.,   672.,   1086.,  1320.,  1566.,
      1824.,  2289.,  2676.,  3081.,  3504.,  2901.,  3324.,  3765.,  4224.,
      3513.,  3972.,  4449.,  4944.,  3006.,  3336.,  3678.,  4032.,  1851.,
      2028.,  2211.,  2400.,  1156.,  1360.,  1572.,  1792.,  3112.,  3552.,
      4008.,  4480.,  5932.,  6640.,  7372.,  8128.,  7036.,  7792.,  8572.,
      9376.,  8140.,  8944.,  9772.,  10624., 6568.,  7136.,  7720.,  8320.,
      3876.,  4176.,  4484.,  4800.,  2676.,  2960.,  3252.,  3552.,  6472.,
      7072.,  7688.,  8320.,  11452., 12400., 13372., 14368., 12556., 13552.,
      14572., 15616., 13660., 14704., 15772., 16864., 10568., 11296., 12040.,
      12800., 6036.,  6416.,  6804.,  7200.,  4095.,  4356.,  4623.,  4896.,
      9222.,  9768.,  10326., 10896., 15429., 16284., 17157., 18048., 16473.,
      17364., 18273., 19200., 17517., 18444., 19389., 20352., 12966., 13608.,
      14262., 14928., 7143.,  7476.,  7815.,  8160.,  4282.,  4488.,  4698.,
      4912.,  9380.,  9808.,  10244., 10688., 15326., 15992., 16670., 17360.,
      16166., 16856., 17558., 18272., 17006., 17720., 18446., 19184., 12324.,
      12816., 13316., 13824., 6666.,  6920.,  7178.,  7440.,  2997.,  3116.,
      3237.,  3360.,  6466.,  6712.,  6962.,  7216.,  10423., 10804., 11191.,
      11584., 10915., 11308., 11707., 12112., 11407., 11812., 12223., 12640.,
      8162.,  8440.,  8722.,  9008.,  4365.,  4508.,  4653.,  4800.,  49.,
      100.,   153.,   208.,   298.,   408.,   522.,   640.,   763.,   940.,
      1123.,  1312.,  1399.,  1588.,  1783.,  1984.,  2035.,  2236.,  2443.,
      2656.,  1642.,  1784.,  1930.,  2080.,  969.,   1044.,  1121.,  1200.,
      1090.,  1224.,  1362.,  1504.,  2708.,  2992.,  3284.,  3584.,  4886.,
      5336.,  5798.,  6272.,  6302.,  6776.,  7262.,  7760.,  7718.,  8216.,
      8726.,  9248.,  5844.,  6192.,  6548.,  6912.,  3282.,  3464.,  3650.,
      3840.,  3363.,  3612.,  3867.,  4128.,  7710.,  8232.,  8766.,  9312.,
      13089., 13908., 14745., 15600., 15429., 16284., 17157., 18048., 17769.,
      18660., 19569., 20496., 13086., 13704., 14334., 14976., 7179.,  7500.,
      7827.,  8160.,  7108.,  7504.,  7908.,  8320.,  15784., 16608., 17448.,
      18304., 26092., 27376., 28684., 30016., 29500., 30832., 32188., 33568.,
      32908., 34288., 35692., 37120., 23848., 24800., 25768., 26752., 12900.,
      13392., 13892., 14400., 12468., 12944., 13428., 13920., 26824., 27808.,
      28808., 29824., 43132., 44656., 46204., 47776., 46540., 48112., 49708.,
      51328., 49948., 51568., 53212., 54880., 35528., 36640., 37768., 38912.,
      18900., 19472., 20052., 20640., 12879., 13284., 13695., 14112., 27366.,
      28200., 29046., 29904., 43509., 44796., 46101., 47424., 46281., 47604.,
      48945., 50304., 49053., 50412., 51789., 53184., 34566., 35496., 36438.,
      37392., 18231., 18708., 19191., 19680., 11098., 11400., 11706., 12016.,
      23396., 24016., 24644., 25280., 36926., 37880., 38846., 39824., 38918.,
      39896., 40886., 41888., 40910., 41912., 42926., 43952., 28644., 29328.,
      30020., 30720., 15018., 15368., 15722., 16080., 6885.,  7052.,  7221.,
      7392.,  14434., 14776., 15122., 15472., 22663., 23188., 23719., 24256.,
      23731., 24268., 24811., 25360., 24799., 25348., 25903., 26464., 17282.,
      17656., 18034., 18416., 9021.,  9212.,  9405.,  9600.,  97.,    196.,
      297.,   400.,   586.,   792.,   1002.,  1216.,  1483.,  1804.,  2131.,
      2464.,  2695.,  3028.,  3367.,  3712.,  3907.,  4252.,  4603.,  4960.,
      3082.,  3320.,  3562.,  3808.,  1785.,  1908.,  2033.,  2160.,  2146.,
      2376.,  2610.,  2848.,  5204.,  5680.,  6164.,  6656.,  9206.,  9944.,
      10694., 11456., 11774., 12536., 13310., 14096., 14342., 15128., 15926.,
      16736., 10644., 11184., 11732., 12288., 5874.,  6152.,  6434.,  6720.,
      6387.,  6780.,  7179.,  7584.,  14334., 15144., 15966., 16800., 23889.,
      25140., 26409., 27696., 27957., 29244., 30549., 31872., 32025., 33348.,
      34689., 36048., 23166., 24072., 24990., 25920., 12507., 12972., 13443.,
      13920., 13060., 13648., 14244., 14848., 28456., 29664., 30888., 32128.,
      46252., 48112., 49996., 51904., 51964., 53872., 55804., 57760., 57676.,
      59632., 61612., 63616., 41128., 42464., 43816., 45184., 21924., 22608.,
      23300., 24000., 22260., 22928., 23604., 24288., 47176., 48544., 49928.,
      51328., 74812., 76912., 79036., 81184., 80524., 82672., 84844., 87040.,
      86236., 88432., 90652., 92896., 60488., 61984., 63496., 65024., 31764.,
      32528., 33300., 34080., 21663., 22212., 22767., 23328., 45510., 46632.,
      47766., 48912., 71589., 73308., 75045., 76800., 76089., 77844., 79617.,
      81408., 80589., 82380., 84189., 86016., 56166., 57384., 58614., 59856.,
      29319., 29940., 30567., 31200., 17914., 18312., 18714., 19120., 37412.,
      38224., 39044., 39872., 58526., 59768., 61022., 62288., 61670., 62936.,
      64214., 65504., 64814., 66104., 67406., 68720., 44964., 45840., 46724.,
      47616., 23370., 23816., 24266., 24720., 10773., 10988., 11205., 11424.,
      22402., 22840., 23282., 23728., 34903., 35572., 36247., 36928., 36547.,
      37228., 37915., 38608., 38191., 38884., 39583., 40288., 26402., 26872.,
      27346., 27824., 13677., 13916., 14157., 14400.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30717.,   34929.,   39285.,   43785.,   51484.,   57484.,   63676.,
      70060.,   78155.,   86135.,   94355.,   102815.,  91955.,   100415.,
      109115.,  118055.,  105755.,  114695.,  123875.,  133295.,  100252.,
      107788.,  115516.,  123436.,  87309.,   93249.,   99333.,   105561.,
      87740.,   95660.,   103772.,  112076.,  137168.,  148240.,  159568.,
      171152.,  197540.,  212020.,  226820.,  241940.,  222340.,  237460.,
      252900.,  268660.,  247140.,  262900.,  278980.,  295380.,  224720.,
      237840.,  251216.,  264848.,  189308.,  199532.,  209948.,  220556.,
      190555.,  203335.,  216355.,  229615.,  286980.,  304660.,  322660.,
      340980.,  400925.,  423825.,  447125.,  470825.,  439925.,  463625.,
      487725.,  512225.,  478925.,  503425.,  528325.,  553625.,  424580.,
      444820.,  465380.,  486260.,  350155.,  365815.,  381715.,  397855.,
      340915.,  357055.,  373435.,  390055.,  496420.,  518580.,  541060.,
      563860.,  673925.,  702425.,  731325.,  760625.,  712925.,  742225.,
      771925.,  802025.,  751925.,  782025.,  812525.,  843425.,  651940.,
      676660.,  701700.,  727060.,  527395.,  546415.,  565675.,  585175.,
      491275.,  510775.,  530515.,  550495.,  705860.,  732500.,  759460.,
      786740.,  946925.,  981025.,  1015525., 1050425., 985925.,  1020825.,
      1056125., 1091825., 1024925., 1060625., 1096725., 1133225., 879300.,
      908500.,  938020.,  967860.,  704635.,  727015.,  749635.,  772495.,
      641635.,  664495.,  687595.,  710935.,  915300.,  946420.,  977860.,
      1009620., 1219925., 1259625., 1299725., 1340225., 1258925., 1299425.,
      1340325., 1381625., 1297925., 1339225., 1380925., 1423025., 1106660.,
      1140340., 1174340., 1208660., 881875.,  907615.,  933595.,  959815.,
      766172.,  786764.,  807548.,  828524.,  1075536., 1103504., 1131728.,
      1160208., 1412740., 1448340., 1484260., 1520500., 1450340., 1486580.,
      1523140., 1560020., 1487940., 1524820., 1562020., 1599540., 1251152.,
      1281168., 1311440., 1341968., 984476.,  1007372., 1030460., 1053740.,
      777717.,  794889.,  812205.,  829665.,  1082044., 1105324., 1128796.,
      1152460., 1409555., 1439135., 1468955., 1499015., 1442555., 1472615.,
      1502915., 1533455., 1475555., 1506095., 1536875., 1567895., 1230652.,
      1255468., 1280476., 1305676., 961029.,  979929.,  998973.,  1018161.,
      429885.,  450225.,  470709.,  491337.,  626716.,  654220.,  681916.,
      709804.,  850955.,  885815.,  920915.,  956255.,  864755.,  900095.,
      935675.,  971495.,  878555.,  914375.,  950435.,  986735.,  761500.,
      790540.,  819772.,  849196.,  615501.,  637569.,  659781.,  682137.,
      835004.,  864428.,  894044.,  923852.,  1190864., 1230608., 1270608.,
      1310864., 1586340., 1636660., 1687300., 1738260., 1611140., 1662100.,
      1713380., 1764980., 1635940., 1687540., 1739460., 1791700., 1393104.,
      1434896., 1476944., 1519248., 1108604., 1140332., 1172252., 1204364.,
      1393435., 1433095., 1472995., 1513135., 1962500., 2016020., 2069860.,
      2124020., 2584925., 2652625., 2720725., 2789225., 2623925., 2692425.,
      2761325., 2830625., 2662925., 2732225., 2801925., 2872025., 2243460.,
      2299540., 2355940., 2412660., 1768075., 1810615., 1853395., 1896415.,
      1543795., 1586815., 1630075., 1673575., 2171940., 2229940., 2288260.,
      2346900., 2857925., 2931225., 3004925., 3079025., 2896925., 2971025.,
      3045525., 3120425., 2935925., 3010825., 3086125., 3161825., 2470820.,
      2531380., 2592260., 2653460., 1945315., 1991215., 2037355., 2083735.,
      1694155., 1740535., 1787155., 1834015., 2381380., 2443860., 2506660.,
      2569780., 3130925., 3209825., 3289125., 3368825., 3169925., 3249625.,
      3329725., 3410225., 3208925., 3289425., 3370325., 3451625., 2698180.,
      2763220., 2828580., 2894260., 2122555., 2171815., 2221315., 2271055.,
      1844515., 1894255., 1944235., 1994455., 2590820., 2657780., 2725060.,
      2792660., 3403925., 3488425., 3573325., 3658625., 3442925., 3528225.,
      3613925., 3700025., 3481925., 3568025., 3654525., 3741425., 2925540.,
      2995060., 3064900., 3135060., 2299795., 2352415., 2405275., 2458375.,
      1943516., 1985612., 2027900., 2070380., 2702672., 2759312., 2816208.,
      2873360., 3518340., 3589780., 3661540., 3733620., 3555940., 3628020.,
      3700420., 3773140., 3593540., 3666260., 3739300., 3812660., 2992976.,
      3051664., 3110608., 3169808., 2333852., 2378252., 2422844., 2467628.,
      1822005., 1855305., 1888749., 1922337., 2517436., 2562220., 2607196.,
      2652364., 3257555., 3314015., 3370715., 3427655., 3290555., 3347495.,
      3404675., 3462095., 3323555., 3380975., 3438635., 3496535., 2752060.,
      2798380., 2844892., 2891596., 2134341., 2169369., 2204541., 2239857.,
      829053.,  865521.,  902133.,  938889.,  1201948., 1250956., 1300156.,
      1349548., 1623755., 1685495., 1747475., 1809695., 1637555., 1699775.,
      1762235., 1824935., 1651355., 1714055., 1776995., 1840175., 1422748.,
      1473292., 1524028., 1574956., 1143693., 1181889., 1220229., 1258713.,
      1582268., 1633196., 1684316., 1735628., 2244560., 2312976., 2381648.,
      2450576., 2975140., 3061300., 3147780., 3234580., 2999940., 3086740.,
      3173860., 3261300., 3024740., 3112180., 3199940., 3288020., 2561488.,
      2631952., 2702672., 2773648., 2027900., 2081132., 2134556., 2188172.,
      2596315., 2662855., 2729635., 2796655., 3638020., 3727380., 3817060.,
      3907060., 4768925., 4881425., 4994325., 5107625., 4807925., 4921225.,
      5034925., 5149025., 4846925., 4961025., 5075525., 5190425., 4062340.,
      4154260., 4246500., 4339060., 3185995., 3255415., 3325075., 3394975.,
      2746675., 2816575., 2886715., 2957095., 3847460., 3941300., 4035460.,
      4129940., 5041925., 5160025., 5278525., 5397425., 5080925., 5199825.,
      5319125., 5438825., 5119925., 5239625., 5359725., 5480225., 4289700.,
      4386100., 4482820., 4579860., 3363235., 3436015., 3509035., 3582295.,
      2897035., 2970295., 3043795., 3117535., 4056900., 4155220., 4253860.,
      4352820., 5314925., 5438625., 5562725., 5687225., 5353925., 5478425.,
      5603325., 5728625., 5392925., 5518225., 5643925., 5770025., 4517060.,
      4617940., 4719140., 4820660., 3540475., 3616615., 3692995., 3769615.,
      3047395., 3124015., 3200875., 3277975., 4266340., 4369140., 4472260.,
      4575700., 5587925., 5717225., 5846925., 5977025., 5626925., 5757025.,
      5887525., 6018425., 5665925., 5796825., 5928125., 6059825., 4744420.,
      4849780., 4955460., 5061460., 3717715., 3797215., 3876955., 3956935.,
      3120860., 3184460., 3248252., 3312236., 4329808., 4415120., 4500688.,
      4586512., 5623940., 5731220., 5838820., 5946740., 5661540., 5769460.,
      5877700., 5986260., 5699140., 5807700., 5916580., 6025780., 4734800.,
      4822160., 4909776., 4997648., 3683228., 3749132., 3815228., 3881516.,
      2866293., 2915721., 2965293., 3015009., 3952828., 4019116., 4085596.,
      4152268., 5105555., 5188895., 5272475., 5356295., 5138555., 5222375.,
      5306435., 5390735., 5171555., 5255855., 5340395., 5425175., 4273468.,
      4341292., 4409308., 4477516., 3307653., 3358809., 3410109., 3461553.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     61.,     113.,    58.,     162.,    298.,    466.,
      287.,    539.,    839.,    1187.,   743.,    1091.,   1487.,   1931.,
      1199.,   1643.,   2135.,   2675.,   1530.,   1890.,   2282.,   2706.,
      1173.,   1385.,   1613.,   1857.,   202.,    498.,    826.,    1186.,
      1524.,   2244.,   3028.,   3876.,   4222.,   5494.,   6862.,   8326.,
      6286.,   7750.,   9310.,   10966.,  8350.,   10006.,  11758.,  13606.,
      8052.,   9284.,   10580.,  11940.,  5354.,   6034.,   6746.,   7490.,
      2511.,   3339.,   4215.,   5139.,   8238.,   10086.,  12030.,  14070.,
      17565.,  20625.,  23829.,  27177.,  22389.,  25737.,  29229.,  32865.,
      27213.,  30849.,  34629.,  38553.,  23406.,  26022.,  28734.,  31542.,
      14463.,  15867.,  17319.,  18819.,  8852.,   10468.,  12148.,  13892.,
      24040.,  27528.,  31144.,  34888.,  46076.,  51692.,  57500.,  63500.,
      54812.,  60812.,  67004.,  73388.,  63548.,  69932.,  76508.,  83276.,
      51432.,  55944.,  60584.,  65352.,  30420.,  32804.,  35252.,  37764.,
      20852.,  23108.,  25428.,  27812.,  50600.,  55368.,  60264.,  65288.,
      89756.,  97292.,  105020., 112940., 98492.,  106412., 114524., 122828.,
      107228., 115532., 124028., 132716., 83112.,  88904.,  94824.,  100872.,
      47540.,  50564.,  53652.,  56804.,  32247.,  34323.,  36447.,  38619.,
      72702.,  77046.,  81486.,  86022.,  121749., 128553., 135501., 142593.,
      130029., 137121., 144357., 151737., 138309., 145689., 153213., 160881.,
      102462., 107574., 112782., 118086., 56487.,  59139.,  61839.,  64587.,
      33850.,  35490.,  37162.,  38866.,  74196.,  77604.,  81076.,  84612.,
      121294., 126598., 131998., 137494., 127966., 133462., 139054., 144742.,
      134638., 140326., 146110., 151990., 97620.,  101540., 105524., 109572.,
      52826.,  54850.,  56906.,  58994.,  23741.,  24689.,  25653.,  26633.,
      51242.,  53202.,  55194.,  57218.,  82631.,  85667.,  88751.,  91883.,
      86543.,  89675.,  92855.,  96083.,  90455.,  93683.,  96959.,  100283.,
      64746.,  66962.,  69210.,  71490.,  34637.,  35777.,  36933.,  38105.,
      293.,    697.,    1117.,   1553.,   2170.,   3042.,   3946.,   4882.,
      5759.,   7163.,   8615.,   10115.,  10823.,  12323.,  13871.,  15467.,
      15887.,  17483.,  19127.,  20819.,  12858.,  13986.,  15146.,  16338.,
      7605.,   8201.,   8813.,   9441.,   8458.,   9522.,   10618.,  11746.,
      21108.,  23364.,  25684.,  28068.,  38206.,  41782.,  45454.,  49222.,
      49486.,  53254.,  57118.,  61078.,  60766.,  64726.,  68782.,  72934.,
      46068.,  48836.,  51668.,  54564.,  25898.,  27346.,  28826.,  30338.,
      26415.,  28395.,  30423.,  32499.,  60654.,  64806.,  69054.,  73398.,
      103101., 109617., 116277., 123081., 121749., 128553., 135501., 142593.,
      140397., 147489., 154725., 162105., 103470., 108390., 113406., 118518.,
      56799.,  59355.,  61959.,  64611.,  56084.,  59236.,  62452.,  65732.,
      124648., 131208., 137896., 144712., 206204., 216428., 226844., 237452.,
      233372., 243980., 254780., 265772., 260540., 271532., 282716., 294092.,
      188904., 196488., 204200., 212040., 102228., 106148., 110132., 114180.,
      98804.,  102596., 106452., 110372., 212648., 220488., 228456., 236552.,
      342044., 354188., 366524., 379052., 369212., 381740., 394460., 407372.,
      396380., 409292., 422396., 435692., 282024., 290888., 299880., 309000.,
      150068., 154628., 159252., 163940., 102231., 105459., 108735., 112059.,
      217278., 223926., 230670., 237510., 345525., 355785., 366189., 376737.,
      367629., 378177., 388869., 399705., 389733., 400569., 411549., 422673.,
      274686., 282102., 289614., 297222., 144903., 148707., 152559., 156459.,
      88186.,  90594.,  93034.,  95506.,  185940., 190884., 195892., 200964.,
      293518., 301126., 308830., 316630., 309406., 317206., 325102., 333094.,
      325294., 333286., 341374., 349558., 227796., 233252., 238772., 244356.,
      119450., 122242., 125066., 127922., 54749.,  56081.,  57429.,  58793.,
      114794., 117522., 120282., 123074., 180263., 184451., 188687., 192971.,
      188783., 193067., 197399., 201779., 197303., 201683., 206111., 210587.,
      137514., 140498., 143514., 146562., 71789.,  73313.,  74853.,  76409.,
      581.,    1369.,   2173.,   2993.,   4282.,   5922.,   7594.,   9298.,
      11231.,  13787.,  16391.,  19043.,  20903.,  23555.,  26255.,  29003.,
      30575.,  33323.,  36119.,  38963.,  24186.,  26082.,  28010.,  29970.,
      14037.,  15017.,  16013.,  17025.,  16714.,  18546.,  20410.,  22306.,
      40692.,  44484.,  48340.,  52260.,  72190.,  78070.,  84046.,  90118.,
      92686.,  98758.,  104926., 111190., 113182., 119446., 125806., 132262.,
      84084.,  88388.,  92756.,  97188.,  46442.,  48658.,  50906.,  53186.,
      50319.,  53451.,  56631.,  59859.,  113070., 119526., 126078., 132726.,
      188637., 198609., 208725., 218985., 221109., 231369., 241773., 252321.,
      253581., 264129., 274821., 285657., 183534., 190758., 198078., 205494.,
      99135.,  102843., 106599., 110403., 103316., 108004., 112756., 117572.,
      225256., 234888., 244648., 254536., 366332., 381164., 396188., 411404.,
      411932., 427148., 442556., 458156., 457532., 473132., 488924., 504908.,
      326376., 337032., 347816., 358728., 174036., 179492., 185012., 190596.,
      176756., 182084., 187476., 192932., 374696., 385608., 396648., 407816.,
      594332., 611084., 628028., 645164., 639932., 657068., 674396., 691916.,
      685532., 703052., 720764., 738668., 480936., 492872., 504936., 517128.,
      252596., 258692., 264852., 271076., 172215., 176595., 181023., 185499.,
      361854., 370806., 379854., 388998., 569301., 583017., 596877., 610881.,
      605229., 619233., 633381., 647673., 641157., 655449., 669885., 684465.,
      446910., 456630., 466446., 476358., 233319., 238275., 243279., 248331.,
      142522., 145698., 148906., 152146., 297684., 304164., 310708., 317316.,
      465742., 475654., 485662., 495766., 490846., 500950., 511150., 521446.,
      515950., 526246., 536638., 547126., 357972., 364964., 372020., 379140.,
      186074., 189634., 193226., 196850., 85757.,  87473.,  89205.,  90953.,
      178346., 181842., 185370., 188930., 277895., 283235., 288623., 294059.,
      291023., 296459., 301943., 307475., 304151., 309683., 315263., 320891.,
      210282., 214034., 217818., 221634., 108941., 110849., 112773., 114713.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241614.,   275166.,   309870.,   345726.,   405992.,   453800.,
      503144.,   554024.,   617410.,   681010.,   746530.,   813970.,
      727330.,   794770.,   864130.,   935410.,   837250.,   908530.,
      981730.,   1056850.,  794600.,   854696.,   916328.,   979496.,
      692622.,   739998.,   788526.,   838206.,   694120.,   757288.,
      821992.,   888232.,   1086432.,  1174752.,  1265120.,  1357536.,
      1566040.,  1681560.,  1799640.,  1920280.,  1763800.,  1884440.,
      2007640.,  2133400.,  1961560.,  2087320.,  2215640.,  2346520.,
      1784800.,  1889504.,  1996256.,  2105056.,  1504360.,  1585960.,
      1669096.,  1753768.,  1511810.,  1613810.,  1717730.,  1823570.,
      2278360.,  2419480.,  2563160.,  2709400.,  3184750.,  3367550.,
      3553550.,  3742750.,  3495950.,  3685150.,  3877550.,  4073150.,
      3807150.,  4002750.,  4201550.,  4403550.,  3376600.,  3538200.,
      3702360.,  3869080.,  2785730.,  2910770.,  3037730.,  3166610.,
      2711330.,  2840210.,  2971010.,  3103730.,  3949400.,  4126360.,
      4305880.,  4487960.,  5363150.,  5590750.,  5821550.,  6055550.,
      5674350.,  5908350.,  6145550.,  6385950.,  5985550.,  6225950.,
      6469550.,  6716350.,  5191000.,  5388440.,  5588440.,  5791000.,
      4200290.,  4352210.,  4506050.,  4661810.,  3910850.,  4066610.,
      4224290.,  4383890.,  5620440.,  5833240.,  6048600.,  6266520.,
      7541550.,  7813950.,  8089550.,  8368350.,  7852750.,  8131550.,
      8413550.,  8698750.,  8163950.,  8449150.,  8737550.,  9029150.,
      7005400.,  7238680.,  7474520.,  7712920.,  5614850.,  5793650.,
      5974370.,  6157010.,  5110370.,  5293010.,  5477570.,  5664050.,
      7291480.,  7540120.,  7791320.,  8045080.,  9719950.,  10037150.,
      10357550., 10681150., 10031150., 10354750., 10681550., 11011550.,
      10342350., 10672350., 11005550., 11341950., 8819800.,  9088920.,
      9360600.,  9634840.,  7029410.,  7235090.,  7442690.,  7652210.,
      6108904.,  6273448.,  6439528.,  6607144.,  8576480.,  8799968.,
      9025504.,  9253088.,  11266520., 11551000., 11838040., 12127640.,
      11566680., 11856280., 12148440., 12443160., 11866840., 12161560.,
      12458840., 12758680., 9979360.,  10219232., 10461152., 10705120.,
      7853032.,  8036008.,  8220520.,  8406568.,  6204654.,  6341886.,
      6480270.,  6619806.,  8633192.,  8819240.,  9006824.,  9195944.,
      11247010., 11483410., 11721730., 11961970., 11510530., 11750770.,
      11992930., 12237010., 11774050., 12018130., 12264130., 12512050.,
      9820520.,  10018856., 10218728., 10420136., 7669422.,  7820478.,
      7972686.,  8126046.,  2450126.,  2530782.,  2612590.,  2695550.,
      3341800.,  3446952.,  3553640.,  3661864.,  4321474.,  4452658.,
      4585762.,  4720786.,  3831330.,  3949970.,  4070530.,  4193010.,
      3941250.,  4063730.,  4188130.,  4314450.,  3359720.,  3460776.,
      3563368.,  3667496.,  2677902.,  2755998.,  2835246.,  2915646.,
      3816296.,  3920424.,  4026088.,  4133288.,  5114848.,  5252320.,
      5391840.,  5533408.,  6533464.,  6706328.,  6881752.,  7059736.,
      5803480.,  5965080.,  6129240.,  6295960.,  6001240.,  6167960.,
      6337240.,  6509080.,  5082080.,  5219552.,  5359072.,  5500640.,
      4026472.,  4132648.,  4240360.,  4349608.,  5424770.,  5561586.,
      5700322.,  5840978.,  7235544.,  7417624.,  7602264.,  7789464.,
      9210734.,  9440638.,  9673742.,  9910046.,  8266510.,  8486430.,
      8709550.,  8935870.,  8577710.,  8804030.,  9033550.,  9266270.,
      7242200.,  7428376.,  7617112.,  7808408.,  5721794.,  5865266.,
      6010658.,  6157970.,  2792482.,  2907026.,  3023490.,  3141874.,
      3557208.,  3709592.,  3864536.,  4022040.,  4456654.,  4649438.,
      4845422.,  5044606.,  3184750.,  3367550.,  3553550.,  3742750.,
      3495950.,  3685150.,  3877550.,  4073150.,  3117400.,  3273880.,
      3432920.,  3594520.,  2583650.,  2704850.,  2827970.,  2953010.,
      2539970.,  2665010.,  2791970.,  2920850.,  3710680.,  3882520.,
      4056920.,  4233880.,  5051950.,  5273150.,  5497550.,  5725150.,
      5363150.,  5590750.,  5821550.,  6055550.,  5674350.,  5908350.,
      6145550.,  6385950.,  4931800.,  5124120.,  5319000.,  5516440.,
      3998210.,  4146290.,  4296290.,  4448210.,  3739490.,  3891410.,
      4045250.,  4201010.,  5381720.,  5589400.,  5799640.,  6012440.,
      7230350.,  7496350.,  7765550.,  8037950.,  7541550.,  7813950.,
      8089550.,  8368350.,  7852750.,  8131550.,  8413550.,  8698750.,
      6746200.,  6974360.,  7205080.,  7438360.,  5412770.,  5587730.,
      5764610.,  5943410.,  4766440.,  4906408.,  5047912.,  5190952.,
      6720992.,  6911712.,  7104480.,  7299296.,  8865240.,  9108760.,
      9354840.,  9603480.,  9165400.,  9414040.,  9665240.,  9919000.,
      9465560.,  9719320.,  9975640.,  10234520., 7992800.,  8199904.,
      8409056.,  8620256.,  6313960.,  6472360.,  6632296.,  6793768.,
      5013486.,  5132286.,  5252238.,  5373342.,  6995816.,  7157288.,
      7320296.,  7484840.,  9138850.,  9344530.,  9552130.,  9761650.,
      9402370.,  9611890.,  9823330.,  10036690., 9665890.,  9879250.,
      10094530., 10311730., 8084840.,  8258600.,  8433896.,  8610728.,
      6330798.,  6463422.,  6597198.,  6732126.,  2954702.,  3082462.,
      3211374.,  3341438.,  4245992.,  4408488.,  4572520.,  4738088.,
      5666242.,  5865010.,  6065698.,  6268306.,  5569314.,  5755538.,
      5943682.,  6133746.,  5406850.,  5580530.,  5756130.,  5933650.,
      4614120.,  4756136.,  4899688.,  5044776.,  3680142.,  3788958.,
      3898926.,  4010046.,  5234536.,  5379624.,  5526248.,  5674408.,
      7111648.,  7298272.,  7486944.,  7677664.,  9141592.,  9371800.,
      9604568.,  9839896.,  8804824.,  9023768.,  9245272.,  9469336.,
      8402520.,  8610200.,  8820440.,  9033240.,  7068640.,  7238880.,
      7411168.,  7585504.,  5565544.,  5696296.,  5828584.,  5962408.,
      7633794.,  7805426.,  7978978.,  8154450.,  10161112., 10384152.,
      10609752., 10837912., 12877422., 13154430., 13434638., 13718046.,
      12326414., 12593438., 12863662., 13137086., 11709870., 11966910.,
      12227150., 12490590., 9797080.,  10007832., 10221144., 10437016.,
      7674818.,  7836722.,  8000546.,  8166290.,  6312226.,  6461586.,
      6612866.,  6766066.,  8121176.,  8314520.,  8510424.,  8708888.,
      10089422., 10329310., 10572398., 10818686., 9210734.,  9440638.,
      9673742.,  9910046.,  8266510.,  8486430.,  8709550.,  8935870.,
      6983000.,  7164056.,  7347672.,  7533848.,  5519714.,  5659346.,
      5800898.,  5944370.,  4007618.,  4134706.,  4263714.,  4394642.,
      4770520.,  4934168.,  5100376.,  5269144.,  5663022.,  5865790.,
      6071758.,  6280926.,  4456654.,  4649438.,  4845422.,  5044606.,
      3184750.,  3367550.,  3553550.,  3742750.,  2858200.,  3009560.,
      3163480.,  3319960.,  2381570.,  2498930.,  2618210.,  2739410.,
      2368610.,  2489810.,  2612930.,  2737970.,  3471960.,  3638680.,
      3807960.,  3979800.,  4740750.,  4955550.,  5173550.,  5394750.,
      5051950.,  5273150.,  5497550.,  5725150.,  5363150.,  5590750.,
      5821550.,  6055550.,  4672600.,  4859800.,  5049560.,  5241880.,
      3796130.,  3940370.,  4086530.,  4234610.,  3423976.,  3539368.,
      3656296.,  3774760.,  4865504.,  5023456.,  5183456.,  5345504.,
      6463960.,  6666520.,  6871640.,  7079320.,  6764120.,  6971800.,
      7182040.,  7394840.,  7064280.,  7277080.,  7492440.,  7710360.,
      6006240.,  6180576.,  6356960.,  6535392.,  4774888.,  4908712.,
      5044072.,  5180968.,  3822318.,  3922686.,  4024206.,  4126878.,
      5358440.,  5495336.,  5633768.,  5773736.,  7030690.,  7205650.,
      7382530.,  7561330.,  7294210.,  7473010.,  7653730.,  7836370.,
      7557730.,  7740370.,  7924930.,  8111410.,  6349160.,  6498344.,
      6649064.,  6801320.,  4992174.,  5106366.,  5221710.,  5338206.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x7x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,    4042.,    6394.,    9130.,    5626.,    8362.,
      11482.,   14986.,   9178.,    12682.,   16570.,   20842.,   11900.,
      14748.,   17852.,   21212.,   9182.,    10862.,   12670.,   14606.,
      1340.,    3676.,    6268.,    9116.,    11512.,   17208.,   23416.,
      30136.,   32564.,   42644.,   53492.,   65108.,   48884.,   60500.,
      72884.,   86036.,   65204.,   78356.,   92276.,   106964.,  63224.,
      73016.,   83320.,   94136.,   42172.,   47580.,   53244.,   59164.,
      19290.,   25866.,   32826.,   40170.,   64116.,   78804.,   94260.,
      110484.,  137550.,  161886.,  187374.,  214014.,  175854.,  202494.,
      230286.,  259230.,  214158.,  243102.,  273198.,  304446.,  184692.,
      205524.,  227124.,  249492.,  114330.,  125514.,  137082.,  149034.,
      69240.,   82104.,   95480.,   109368.,  188912.,  216688.,  245488.,
      275312.,  363112.,  407848.,  454120.,  501928.,  432616.,  480424.,
      529768.,  580648.,  502120.,  553000.,  605416.,  659368.,  407024.,
      442992.,  479984.,  518000.,  241016.,  260024.,  279544.,  299576.,
      164600.,  182584.,  201080.,  220088.,  400112.,  438128.,  477168.,
      517232.,  710632.,  770728.,  832360.,  895528.,  780136.,  843304.,
      908008.,  974248.,  849640.,  915880.,  983656.,  1052968., 659184.,
      705392.,  752624.,  800880.,  377336.,  401464.,  426104.,  451256.,
      255930.,  272490.,  289434.,  306762.,  577332.,  611988.,  647412.,
      683604.,  967278.,  1021566., 1077006., 1133598., 1033230., 1089822.,
      1147566., 1206462., 1099182., 1158078., 1218126., 1279326., 814644.,
      855444.,  897012.,  939348.,  449274.,  470442.,  491994.,  513930.,
      269180.,  282268.,  295612.,  309212.,  590200.,  617400.,  645112.,
      673336.,  965108.,  1007444., 1050548., 1094420., 1018292., 1062164.,
      1106804., 1152212., 1071476., 1116884., 1163060., 1210004., 777080.,
      808376.,  840184.,  872504.,  420604.,  436764.,  453180.,  469852.,
      188990.,  196558.,  204254.,  212078.,  407996.,  423644.,  439548.,
      455708.,  658042.,  682282.,  706906.,  731914.,  689242.,  714250.,
      739642.,  765418.,  720442.,  746218.,  772378.,  798922.,  515772.,
      533468.,  551420.,  569628.,  275966.,  285070.,  294302.,  303662.,
      1950.,    5166.,    8510.,    11982.,   16508.,   23452.,   30652.,
      38108.,   44698.,   55882.,   67450.,   79402.,   85114.,   97066.,
      109402.,  122122.,  125530.,  138250.,  151354.,  164842.,  101756.,
      110748.,  119996.,  129500.,  60254.,   65006.,   69886.,   74894.,
      66620.,   75100.,   83836.,   92828.,   166648.,  184632.,  203128.,
      222136.,  302132.,  330644.,  359924.,  389972.,  392180.,  422228.,
      453044.,  484628.,  482228.,  513812.,  546164.,  579284.,  365816.,
      387896.,  410488.,  433592.,  205756.,  217308.,  229116.,  241180.,
      209370.,  225162.,  241338.,  257898.,  481140.,  514260.,  548148.,
      582804.,  818382.,  870366.,  923502.,  977790.,  967278.,  1021566.,
      1077006., 1133598., 1116174., 1172766., 1230510., 1289406., 822900.,
      862164.,  902196.,  942996.,  451866.,  472266.,  493050.,  514218.,
      445560.,  470712.,  496376.,  522552.,  990704.,  1043056., 1096432.,
      1150832., 1639528., 1721128., 1804264., 1888936., 1856488., 1941160.,
      2027368., 2115112., 2073448., 2161192., 2250472., 2341288., 1503728.,
      1564272., 1625840., 1688432., 813944.,  845240.,  877048.,  909368.,
      786680.,  816952.,  847736.,  879032.,  1693424., 1756016., 1819632.,
      1884272., 2724328., 2821288., 2919784., 3019816., 2941288., 3041320.,
      3142888., 3245992., 3158248., 3261352., 3365992., 3472168., 2247408.,
      2318192., 2390000., 2462832., 1196024., 1232440., 1269368., 1306808.,
      814650.,  840426.,  866586.,  893130.,  1731636., 1784724., 1838580.,
      1893204., 2754030., 2835966., 2919054., 3003294., 2930574., 3014814.,
      3100206., 3186750., 3107118., 3193662., 3281358., 3370206., 2190132.,
      2249364., 2309364., 2370132., 1155450., 1185834., 1216602., 1247754.,
      703100.,  722332.,  741820.,  761564.,  1482616., 1522104., 1562104.,
      1602616., 2340596., 2401364., 2462900., 2525204., 2467508., 2529812.,
      2592884., 2656724., 2594420., 2658260., 2722868., 2788244., 1816952.,
      1860536., 1904632., 1949240., 952828.,  975132.,  997692.,  1020508.,
      436670.,  447310.,  458078.,  468974.,  915644.,  937436.,  959484.,
      981788.,  1437946., 1471402., 1505242., 1539466., 1506010., 1540234.,
      1574842., 1609834., 1574074., 1609066., 1644442., 1680202., 1097148.,
      1120988., 1145084., 1169436., 572798.,  584974.,  597278.,  609710.,
      3870.,    10158.,   16574.,   23118.,   32636.,   45724.,   59068.,
      72668.,   87322.,   107722.,  128506.,  149674.,  164602.,  185770.,
      207322.,  229258.,  241882.,  263818.,  286138.,  308842.,  191612.,
      206748.,  222140.,  237788.,  111326.,  119150.,  127102.,  135182.,
      131900.,  146524.,  161404.,  176540.,  321784.,  352056.,  382840.,
      414136.,  571700.,  618644.,  666356.,  714836.,  735476.,  783956.,
      833204.,  883220.,  899252.,  949268.,  1000052., 1051604., 668408.,
      702776.,  737656.,  773048.,  369340.,  387036.,  404988.,  423196.,
      399450.,  424458.,  449850.,  475626.,  898164.,  949716.,  1002036.,
      1055124., 1499214., 1578846., 1659630., 1741566., 1758702., 1840638.,
      1923726., 2007966., 2018190., 2102430., 2187822., 2274366., 1461108.,
      1518804., 1577268., 1636500., 789402.,  819018.,  849018.,  879402.,
      821880.,  859320.,  897272.,  935736.,  1792496., 1869424., 1947376.,
      2026352., 2915944., 3034408., 3154408., 3275944., 3280360., 3401896.,
      3524968., 3649576., 3644776., 3769384., 3895528., 4023208., 2600432.,
      2685552., 2771696., 2858864., 1386872., 1430456., 1474552., 1519160.,
      1408760., 1451320., 1494392., 1537976., 2986736., 3073904., 3162096.,
      3251312., 4738024., 4871848., 5007208., 5144104., 5102440., 5239336.,
      5377768., 5517736., 5466856., 5606824., 5748328., 5891368., 3835632.,
      3930992., 4027376., 4124784., 2014712., 2063416., 2112632., 2162360.,
      1373370., 1408362., 1443738., 1479498., 2885940., 2957460., 3029748.,
      3102804., 4540782., 4650366., 4761102., 4872990., 4827918., 4939806.,
      5052846., 5167038., 5115054., 5229246., 5344590., 5461086., 3565620.,
      3643284., 3721716., 3800916., 1861626., 1901226., 1941210., 1981578.,
      1137020., 1162396., 1188028., 1213916., 2375032., 2426808., 2479096.,
      2531896., 3716084., 3795284., 3875252., 3955988., 3916724., 3997460.,
      4078964., 4161236., 4117364., 4199636., 4282676., 4366484., 2856824.,
      2912696., 2969080., 3025976., 1485052., 1513500., 1542204., 1571164.,
      684350.,  698062.,  711902.,  725870.,  1423292., 1451228., 1479420.,
      1507868., 2217850., 2260522., 2303578., 2347018., 2322778., 2366218.,
      2410042., 2454250., 2427706., 2471914., 2516506., 2561482., 1678524.,
      1708508., 1738748., 1769244., 869630.,  884878.,  900254.,  915758.};
  const std::array<int, 4> in_shape = {{3, 8, 7, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      384.,   610.,   890.,   1010.,  1130.,  1250.,  1144.,  969.,   988.,
      1500.,  2110.,  2320.,  2530.,  2740.,  2436.,  2014.,  2030.,  3000.,
      4125.,  4450.,  4775.,  5100.,  4450.,  3620.,  3470.,  5000.,  6725.,
      7050.,  7375.,  7700.,  6610.,  5300.,  4910.,  7000.,  9325.,  9650.,
      9975.,  10300., 8770.,  6980.,  6350.,  9000.,  11925., 12250., 12575.,
      12900., 10930., 8660.,  7396.,  10340., 13530., 13840., 14150., 14460.,
      12108., 9490.,  7404.,  10270., 13340., 13610., 13880., 14150., 11764.,
      9159.,  4416.,  6370.,  8570.,  8690.,  8810.,  8930.,  7672.,  6153.,
      8284.,  11740., 15550., 15760., 15970., 16180., 13700., 10846., 13550.,
      19000., 24925., 25250., 25575., 25900., 21730., 17060., 14990., 21000.,
      27525., 27850., 28175., 28500., 23890., 18740., 16430., 23000., 30125.,
      30450., 30775., 31100., 26050., 20420., 17870., 25000., 32725., 33050.,
      33375., 33700., 28210., 22100., 18532., 25700., 33370., 33680., 33990.,
      34300., 28492., 22162., 17196., 23710., 30620., 30890., 31160., 31430.,
      25972., 20103., 8448.,  12130., 16250., 16370., 16490., 16610., 14200.,
      11337., 15580., 21980., 28990., 29200., 29410., 29620., 24964., 19678.,
      25070., 35000., 45725., 46050., 46375., 46700., 39010., 30500., 26510.,
      37000., 48325., 48650., 48975., 49300., 41170., 32180., 27950., 39000.,
      50925., 51250., 51575., 51900., 43330., 33860., 29390., 41000., 53525.,
      53850., 54175., 54500., 45490., 35540., 29668., 41060., 53210., 53520.,
      53830., 54140., 44876., 34834., 26988., 37150., 47900., 48170., 48440.,
      48710., 40180., 31047.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,    4.,    10.,   20.,   30.,   34.,   31.,   20.,   11.,   35.,
      74.,   130.,  166.,  161.,  133.,  80.,   50.,   133.,  252.,  410.,
      488.,  441.,  346.,  200.,  138.,  338.,  604.,  940.,  1076., 934.,
      710.,  400.,  278.,  638.,  1084., 1620., 1756., 1474., 1090., 600.,
      392.,  859.,  1404., 2030., 2156., 1755., 1264., 680.,  397.,  853.,
      1370., 1950., 2050., 1643., 1167., 620.,  273.,  580.,  922.,  1300.,
      1358., 1078., 759.,  400.,  17.,   52.,   106.,  180.,  254.,  226.,
      175.,  100.,  123.,  291.,  506.,  770.,  934.,  785.,  581.,  320.,
      338.,  757.,  1260., 1850., 2120., 1737., 1258., 680.,  682.,  1490.,
      2428., 3500., 3892., 3142., 2246., 1200., 1142., 2430., 3868., 5460.,
      5852., 4642., 3266., 1720., 1160., 2443., 3852., 5390., 5708., 4491.,
      3136., 1640., 989.,  2069., 3242., 4510., 4738., 3707., 2575., 1340.,
      609.,  1268., 1978., 2740., 2862., 2230., 1543., 800.,  33.,   100.,
      202.,  340.,  478.,  418.,  319.,  180.,  235.,  547.,  938.,  1410.,
      1702., 1409., 1029., 560.,  626.,  1381., 2268., 3290., 3752., 3033.,
      2170., 1160., 1226., 2642., 4252., 6060., 6708., 5350., 3782., 2000.,
      2006., 4222., 6652., 9300., 9948., 7810., 5442., 2840., 1928., 4027.,
      6300., 8750., 9260., 7227., 5008., 2600., 1581., 3285., 5114., 7070.,
      7426., 5771., 3983., 2060., 945.,  1956., 3034., 4180., 4366., 3382.,
      2327., 1200.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2775.,   4460.,   6565.,   7495.,   8425.,   9355.,   8612.,   7329.,
      7352.,   11232.,  15880.,  17520.,  19160.,  20800.,  18560.,  15392.,
      15355.,  22780.,  31425.,  33975.,  36525.,  39075.,  34180.,  27865.,
      26635.,  38460.,  51825.,  54375.,  56925.,  59475.,  51140.,  41065.,
      37915.,  54140.,  72225.,  74775.,  77325.,  79875.,  68100.,  54265.,
      49195.,  69820.,  92625.,  95175.,  97725.,  100275., 85060.,  67465.,
      57728.,  80768.,  105760., 108200., 110640., 113080., 94752.,  74312.,
      58035.,  80540.,  104665., 106795., 108925., 111055., 92372.,  71949.,
      33879.,  49004.,  66085.,  67015.,  67945.,  68875.,  59300.,  47649.,
      64184.,  91104.,  120840., 122480., 124120., 125760., 106624., 84512.,
      105595., 148220., 194625., 197175., 199725., 202275., 169860., 133465.,
      116875., 163900., 215025., 217575., 220125., 222675., 186820., 146665.,
      128155., 179580., 235425., 237975., 240525., 243075., 203780., 159865.,
      139435., 195260., 255825., 258375., 260925., 263475., 220740., 173065.,
      145280., 201600., 261920., 264360., 266800., 269240., 223776., 174152.,
      135219., 186524., 240985., 243115., 245245., 247375., 204500., 158349.,
      64983.,  93548.,  125605., 126535., 127465., 128395., 109988., 87969.,
      121016., 170976., 225800., 227440., 229080., 230720., 194688., 153632.,
      195835., 273660., 357825., 360375., 362925., 365475., 305540., 239065.,
      207115., 289340., 378225., 380775., 383325., 385875., 322500., 252265.,
      218395., 305020., 398625., 401175., 403725., 406275., 339460., 265465.,
      229675., 320700., 419025., 421575., 424125., 426675., 356420., 278665.,
      232832., 322432., 418080., 420520., 422960., 425400., 352800., 273992.,
      212403., 292508., 377305., 379435., 381565., 383695., 316628., 244749.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,     22.,    59.,    124.,   196.,   233.,   218.,   143.,   64.,
      224.,   496.,   896.,   1168.,  1156.,  968.,   588.,   337.,   926.,
      1791.,  2956.,  3556.,  3249.,  2570.,  1495.,  984.,   2448.,  4424.,
      6944.,  8000.,  6992.,  5344.,  3024.,  2064.,  4768.,  8144.,  12224.,
      13280., 11192., 8304.,  4584.,  2989.,  6566.,  10755., 15580., 16564.,
      13509., 9746.,  5251.,  3060.,  6584.,  10588., 15088., 15872., 12736.,
      9056.,  4816.,  2117.,  4502.,  7163.,  10108., 10564., 8393.,  5914.,
      3119.,  101.,   342.,   731.,   1276.,  1860.,  1673.,  1306.,  751.,
      896.,   2144.,  3760.,  5760.,  7056.,  5956.,  4424.,  2444.,  2545.,
      5726.,  9567.,  14092., 16228., 13329., 9674.,  5239.,  5208.,  11408.,
      18632., 26912., 30016., 24272., 17376., 9296.,  8848.,  18848., 30032.,
      42432., 45536., 36152., 25456., 13416., 9037.,  19046., 30051., 42076.,
      44596., 35109., 24530., 12835., 7732.,  16184., 25372., 35312., 37120.,
      29056., 20192., 10512., 4773.,  9942.,  15515., 21500., 22468., 17513.,
      12122., 6287.,  197.,   662.,   1403.,  2428.,  3524.,  3113.,  2394.,
      1359.,  1728.,  4064.,  7024.,  10624., 12944., 10756., 7880.,  4300.,
      4753.,  10526., 17343., 25228., 28900., 23409., 16778., 8983.,  9432.,
      20368., 32840., 46880., 52032., 41552., 29408., 15568., 15632., 32928.,
      51920., 72640., 77792., 61112., 42608., 22248., 15085., 31526., 49347.,
      68572., 72628., 56709., 39314., 20419., 12404., 25784., 40156., 55536.,
      58368., 45376., 31328., 16208., 7429.,  15382., 23867., 32892., 34372.,
      26633., 18330., 9455.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21030.,   34024.,   50330.,   57650.,   64970.,   72290.,   66760.,
      56958.,   56632.,   86816.,   123080.,  136040.,  149000.,  161960.,
      144800.,  120280.,  119330.,  177400.,  245150.,  265350.,  285550.,
      305750.,  267800.,  218570.,  208610.,  301560.,  406750.,  426950.,
      447150.,  467350.,  402200.,  323210.,  297890.,  425720.,  568350.,
      588550.,  608750.,  628950.,  536600.,  427850.,  387170.,  549880.,
      729950.,  750150.,  770350.,  790550.,  671000.,  532490.,  456088.,
      638368.,  836200.,  855560.,  874920.,  894280.,  749600.,  588088.,
      459510.,  637864.,  829130.,  846050.,  862970.,  879890.,  732040.,
      570318.,  265254.,  384232.,  518810.,  526130.,  533450.,  540770.,
      466120.,  374910.,  505144.,  717600.,  952520.,  965480.,  978440.,
      991400.,  841120.,  667096.,  833570.,  1170680., 1537950., 1558150.,
      1578350., 1598550., 1343000., 1055690., 922850.,  1294840., 1699550.,
      1719750., 1739950., 1760150., 1477400., 1160330., 1012130., 1419000.,
      1861150., 1881350., 1901550., 1921750., 1611800., 1264970., 1101410.,
      1543160., 2022750., 2042950., 2063150., 2083350., 1746200., 1369610.,
      1150360., 1596832., 2075240., 2094600., 2113960., 2133320., 1773600.,
      1380664., 1072374., 1479592., 1912010., 1928930., 1945850., 1962770.,
      1622920., 1256910., 509478.,  734440.,  987290.,  994610.,  1001930.,
      1009250., 865480.,  692862.,  953656.,  1348384., 1781960., 1794920.,
      1807880., 1820840., 1537440., 1213912., 1547810., 2163960., 2830750.,
      2850950., 2871150., 2891350., 2418200., 1892810., 1637090., 2288120.,
      2992350., 3012550., 3032750., 3052950., 2552600., 1997450., 1726370.,
      2412280., 3153950., 3174150., 3194350., 3214550., 2687000., 2102090.,
      1815650., 2536440., 3315550., 3335750., 3355950., 3376150., 2821400.,
      2206730., 1844632., 2555296., 3314280., 3333640., 3353000., 3372360.,
      2797600., 2173240., 1685238., 2321320., 2994890., 3011810., 3028730.,
      3045650., 2513800., 1943502.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,     140.,    394.,    856.,    1400.,   1714.,   1628.,   1078.,
      420.,    1576.,   3596.,   6608.,   8720.,   8732.,   7368.,   4500.,
      2450.,   6868.,   13446.,  22376.,  27080.,  24894.,  19780.,  11546.,
      7400.,   18576.,  33784.,  53280.,  61600.,  54040.,  41424.,  23496.,
      15880.,  36816.,  63064.,  94880.,  103200., 87160.,  64784.,  35816.,
      23330.,  51316.,  84150.,  122024., 129800., 105966., 76516.,  41258.,
      24020.,  51720.,  83228.,  118672., 124880., 100268., 71336.,  37956.,
      16670.,  35468.,  56458.,  79704.,  83320.,  66226.,  46684.,  24630.,
      670.,    2444.,   5386.,   9560.,   14200.,  12850.,  10076.,  5814.,
      6820.,   16424.,  28940.,  44496.,  54800.,  46364.,  34504.,  19092.,
      19730.,  44500.,  74502.,  109928., 126920., 104382., 75844.,  41114.,
      40680.,  89232.,  145912., 210976., 235680., 190744., 136656., 73160.,
      69640.,  148432., 236632., 334496., 359200., 285304., 200976., 105960.,
      71330.,  150388., 237366., 332456., 352520., 277614., 194020., 101546.,
      61140.,  128008., 200732., 279440., 293840., 230060., 159912., 83268.,
      37790.,  78732.,  122890., 170328., 178040., 138802., 96092.,  49846.,
      1310.,   4748.,   10378.,  18264.,  27000.,  23986.,  18524.,  10550.,
      13220.,  31272.,  54284.,  82384.,  100880., 83996.,  61640.,  33684.,
      37010.,  82132.,  135558., 197480., 226760., 183870., 131908., 70682.,
      73960.,  159888., 258040., 368672., 409760., 327448., 231888., 122824.,
      123400., 260048., 410200., 574112., 615200., 483448., 337168., 176104.,
      119330., 249460., 390582., 542888., 575240., 449262., 311524., 161834.,
      98260.,  204296., 318236., 440208., 462800., 359852., 248488., 128580.,
      58910.,  121996., 189322., 260952., 272760., 211378., 145500., 75062.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1239.,   1536.,   2020.,   2440.,   3005.,   3560.,   3455.,   4040.,
      3905.,   4520.,   4355.,   5000.,   4036.,   4576.,   3453.,   3876.,
      3400.,   3952.,   5232.,   6000.,   7440.,   8440.,   8240.,   9280.,
      9040.,   10120.,  9840.,   10960.,  8816.,   9744.,   7336.,   8056.,
      7235.,   8120.,   10780.,  12000.,  14925.,  16500.,  16175.,  17800.,
      17425.,  19100.,  18675.,  20400.,  16380.,  17800.,  13385.,  14480.,
      12755.,  13880.,  18460.,  20000.,  24925.,  26900.,  26175.,  28200.,
      27425.,  29500.,  28675.,  30800.,  24700.,  26440.,  19865.,  21200.,
      18275.,  19640.,  26140.,  28000.,  34925.,  37300.,  36175.,  38600.,
      37425.,  39900.,  38675.,  41200.,  33020.,  35080.,  26345.,  27920.,
      23795.,  25400.,  33820.,  36000.,  44925.,  47700.,  46175.,  49000.,
      47425.,  50300.,  48675.,  51600.,  41340.,  43720.,  32825.,  34640.,
      28144.,  29584.,  39408.,  41360.,  51640.,  54120.,  52840.,  55360.,
      54040.,  56600.,  55240.,  57840.,  46320.,  48432.,  36352.,  37960.,
      28419.,  29616.,  39460.,  41080.,  51305.,  53360.,  52355.,  54440.,
      53405.,  55520.,  54455.,  56600.,  45316.,  47056.,  35313.,  36636.,
      16215.,  17664.,  23524.,  25480.,  31805.,  34280.,  32255.,  34760.,
      32705.,  35240.,  33155.,  35720.,  28612.,  30688.,  23037.,  24612.,
      31048.,  33136.,  44144.,  46960.,  58640.,  62200.,  59440.,  63040.,
      60240.,  63880.,  61040.,  64720.,  51824.,  54800.,  41128.,  43384.,
      51395.,  54200.,  72220.,  76000.,  94925.,  99700.,  96175.,  101000.,
      97425.,  102300., 98675.,  103600., 82940.,  86920.,  65225.,  68240.,
      56915.,  59960.,  79900.,  84000.,  104925., 110100., 106175., 111400.,
      107425., 112700., 108675., 114000., 91260.,  95560.,  71705.,  74960.,
      62435.,  65720.,  87580.,  92000.,  114925., 120500., 116175., 121800.,
      117425., 123100., 118675., 124400., 99580.,  104200., 78185.,  81680.,
      67955.,  71480.,  95260.,  100000., 124925., 130900., 126175., 132200.,
      127425., 133500., 128675., 134800., 107900., 112840., 84665.,  88400.,
      71152.,  74128.,  98800.,  102800., 128440., 133480., 129640., 134720.,
      130840., 135960., 132040., 137200., 109808., 113968., 85504.,  88648.,
      66435.,  68784.,  91684.,  94840.,  118505., 122480., 119555., 123560.,
      120605., 124640., 121655., 125720., 100612., 103888., 77937.,  80412.,
      31191.,  33792.,  45028.,  48520.,  60605.,  65000.,  61055.,  65480.,
      61505.,  65960.,  61955.,  66440.,  53188.,  56800.,  42621.,  45348.,
      58696.,  62320.,  83056.,  87920.,  109840., 115960., 110640., 116800.,
      111440., 117640., 112240., 118480., 94832.,  99856.,  74920.,  78712.,
      95555.,  100280., 133660., 140000., 174925., 182900., 176175., 184200.,
      177425., 185500., 178675., 186800., 149500., 156040., 117065., 122000.,
      101075., 106040., 141340., 148000., 184925., 193300., 186175., 194600.,
      187425., 195900., 188675., 197200., 157820., 164680., 123545., 128720.,
      106595., 111800., 149020., 156000., 194925., 203700., 196175., 205000.,
      197425., 206300., 198675., 207600., 166140., 173320., 130025., 135440.,
      112115., 117560., 156700., 164000., 204925., 214100., 206175., 215400.,
      207425., 216700., 208675., 218000., 174460., 181960., 136505., 142160.,
      114160., 118672., 158192., 164240., 205240., 212840., 206440., 214080.,
      207640., 215320., 208840., 216560., 173296., 179504., 134656., 139336.,
      104451., 107952., 143908., 148600., 185705., 191600., 186755., 192680.,
      187805., 193760., 188855., 194840., 155908., 160720., 120561., 124188.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,     4.,     6.,     16.,    19.,    40.,    44.,    80.,    76.,
      120.,   97.,    136.,   94.,    124.,   63.,    80.,    20.,    44.,
      84.,    140.,   200.,   296.,   376.,   520.,   504.,   664.,   512.,
      644.,   436.,   532.,   268.,   320.,   137.,   200.,   394.,   532.,
      783.,   1008.,  1316.,  1640.,  1604.,  1952.,  1485.,  1764.,  1186.,
      1384.,  695.,   800.,   432.,   552.,   1096.,  1352.,  2008.,  2416.,
      3184.,  3760.,  3696.,  4304.,  3256.,  3736.,  2504.,  2840.,  1424.,
      1600.,  952.,   1112.,  2216.,  2552.,  3808.,  4336.,  5744.,  6480.,
      6256.,  7024.,  5296.,  5896.,  3944.,  4360.,  2184.,  2400.,  1421.,
      1568.,  3130.,  3436.,  5139.,  5616.,  7460.,  8120.,  7940.,  8624.,
      6489.,  7020.,  4690.,  5056.,  2531.,  2720.,  1472.,  1588.,  3172.,
      3412.,  5108.,  5480.,  7288.,  7800.,  7672.,  8200.,  6164.,  6572.,
      4388.,  4668.,  2336.,  2480.,  1025.,  1092.,  2182.,  2320.,  3475.,
      3688.,  4908.,  5200.,  5132.,  5432.,  4081.,  4312.,  2878.,  3036.,
      1519.,  1600.,  33.,    68.,    134.,   208.,   307.,   424.,   556.,
      720.,   844.,   1016.,  769.,   904.,   606.,   700.,   351.,   400.,
      404.,   492.,   980.,   1164.,  1736.,  2024.,  2680.,  3080.,  3320.,
      3736.,  2816.,  3140.,  2100.,  2324.,  1164.,  1280.,  1193.,  1352.,
      2698.,  3028.,  4527.,  5040.,  6692.,  7400.,  7748.,  8480.,  6381.,
      6948.,  4642.,  5032.,  2519.,  2720.,  2480.,  2728.,  5448.,  5960.,
      8920.,  9712.,  12912., 14000., 14448., 15568., 11704., 12568., 8392.,
      8984.,  4496.,  4800.,  4280.,  4568.,  9128.,  9720.,  14560., 15472.,
      20592., 21840., 22128., 23408., 17584., 18568., 12392., 13064., 6536.,
      6880.,  4397.,  4640.,  9274.,  9772.,  14643., 15408., 20516., 21560.,
      21764., 22832., 17145., 17964., 11986., 12544., 6275.,  6560.,  3776.,
      3956.,  7908.,  8276.,  12404., 12968., 17272., 18040., 18168., 18952.,
      14228., 14828., 9892.,  10300., 5152.,  5360.,  2337.,  2436.,  4870.,
      5072.,  7603.,  7912.,  10540., 10960., 11020., 11448., 8593.,  8920.,
      5950.,  6172.,  3087.,  3200.,  65.,    132.,   262.,   400.,   595.,
      808.,   1068.,  1360.,  1612.,  1912.,  1441.,  1672.,  1118.,  1276.,
      639.,   720.,   788.,   940.,   1876.,  2188.,  3272.,  3752.,  4984.,
      5640.,  6136.,  6808.,  5120.,  5636.,  3764.,  4116.,  2060.,  2240.,
      2249.,  2504.,  5002.,  5524.,  8271.,  9072.,  12068., 13160., 13892.,
      15008., 11277., 12132., 8098.,  8680.,  4343.,  4640.,  4528.,  4904.,
      9800.,  10568., 15832., 17008., 22640., 24240., 25200., 26832., 20152.,
      21400., 14280., 15128., 7568.,  8000.,  7608.,  8024.,  16040., 16888.,
      25312., 26608., 35440., 37200., 38000., 39792., 29872., 31240., 20840.,
      21768., 10888., 11360., 7373.,  7712.,  15418., 16108., 24147., 25200.,
      33572., 35000., 35588., 37040., 27801., 28908., 19282., 20032., 10019.,
      10400., 6080.,  6324.,  12644., 13140., 19700., 20456., 27256., 28280.,
      28664., 29704., 22292., 23084., 15396., 15932., 7968.,  8240.,  3649.,
      3780.,  7558.,  7824.,  11731., 12136., 16172., 16720., 16908., 17464.,
      13105., 13528., 9022.,  9308.,  4655.,  4800.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      9345.,    11685.,   15356.,   18668.,   22975.,   27355.,   26515.,
      31135.,   30055.,   34915.,   33595.,   38695.,   31244.,   35516.,
      26805.,   30153.,   26132.,   30500.,   40368.,   46448.,   57580.,
      65500.,   63900.,   72140.,   70220.,   78780.,   76540.,   85420.,
      68720.,   76080.,   57284.,   62996.,   56155.,   63175.,   83860.,
      93540.,   116325.,  128825.,  126225.,  139125.,  136125.,  149425.,
      146025.,  159725.,  128260.,  139540.,  104935.,  113635.,  99835.,
      108775.,  144660.,  156900.,  195525.,  211225.,  205425.,  221525.,
      215325.,  231825.,  225225.,  242125.,  194180.,  208020.,  156295.,
      166915.,  143515.,  154375.,  205460.,  220260.,  274725.,  293625.,
      284625.,  303925.,  294525.,  314225.,  304425.,  324525.,  260100.,
      276500.,  207655.,  220195.,  187195.,  199975.,  266260.,  283620.,
      353925.,  376025.,  363825.,  386325.,  373725.,  396625.,  383625.,
      406925.,  326020.,  344980.,  259015.,  273475.,  222308.,  233780.,
      311408.,  326960.,  408220.,  427980.,  417740.,  437820.,  427260.,
      447660.,  436780.,  457500.,  366384.,  383216.,  287636.,  300452.,
      224985.,  234525.,  312476.,  325388.,  406375.,  422755.,  414715.,
      431335.,  423055.,  439915.,  431395.,  448495.,  359084.,  372956.,
      279885.,  290433.,  126849.,  138405.,  184316.,  199916.,  249535.,
      269275.,  253075.,  273055.,  256615.,  276835.,  260155.,  280615.,
      224780.,  241340.,  181173.,  193737.,  244244.,  260900.,  347568.,
      370032.,  462060.,  490460.,  468380.,  497100.,  474700.,  503740.,
      481020.,  510380.,  408688.,  432432.,  324548.,  342548.,  405595.,
      427975.,  570260.,  600420.,  749925.,  788025.,  759825.,  798325.,
      769725.,  808625.,  779625.,  818925.,  655620.,  687380.,  515815.,
      539875.,  449275.,  473575.,  631060.,  663780.,  829125.,  870425.,
      839025.,  880725.,  848925.,  891025.,  858825.,  901325.,  721540.,
      755860.,  567175.,  593155.,  492955.,  519175.,  691860.,  727140.,
      908325.,  952825.,  918225.,  963125.,  928125.,  973425.,  938025.,
      983725.,  787460.,  824340.,  618535.,  646435.,  536635.,  564775.,
      752660.,  790500.,  987525.,  1035225., 997425.,  1045525., 1007325.,
      1055825., 1017225., 1066125., 853380.,  892820.,  669895.,  699715.,
      563300.,  587060.,  782448.,  814384.,  1017500., 1057740., 1027020.,
      1067580., 1036540., 1077420., 1046060., 1087260., 870192.,  903408.,
      677780.,  702884.,  526809.,  545565.,  727196.,  752396.,  940135.,
      971875.,  948475.,  980455.,  956815.,  989035.,  965155.,  997615.,
      798380.,  824540.,  618573.,  638337.,  244353.,  265125.,  353276.,
      381164.,  476095.,  511195.,  479635.,  514975.,  483175.,  518755.,
      486715.,  522535.,  418316.,  447164.,  335541.,  357321.,  462356.,
      491300.,  654768.,  693616.,  866540.,  915420.,  872860.,  922060.,
      879180.,  928700.,  885500.,  935340.,  748656.,  788784.,  591812.,
      622100.,  755035.,  792775.,  1056660., 1107300., 1383525., 1447225.,
      1393425., 1457525., 1403325., 1467825., 1413225., 1478125., 1182980.,
      1235220., 926695.,  966115.,  798715.,  838375.,  1117460., 1170660.,
      1462725., 1529625., 1472625., 1539925., 1482525., 1550225., 1492425.,
      1560525., 1248900., 1303700., 978055.,  1019395., 842395.,  883975.,
      1178260., 1234020., 1541925., 1612025., 1551825., 1622325., 1561725.,
      1632625., 1571625., 1642925., 1314820., 1372180., 1029415., 1072675.,
      886075.,  929575.,  1239060., 1297380., 1621125., 1694425., 1631025.,
      1704725., 1640925., 1715025., 1650825., 1725325., 1380740., 1440660.,
      1080775., 1125955., 904292.,  940340.,  1253488., 1301808., 1626780.,
      1687500., 1636300., 1697340., 1645820., 1707180., 1655340., 1717020.,
      1374000., 1423600., 1067924., 1105316., 828633.,  856605.,  1141916.,
      1179404., 1473895., 1520995., 1482235., 1529575., 1490575., 1538155.,
      1498915., 1546735., 1237676., 1276124., 957261.,  986241.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,      25.,     34.,     106.,    119.,    275.,    292.,    564.,
      532.,    868.,    707.,    1007.,   698.,    930.,    473.,    605.,
      118.,    302.,    572.,    1004.,   1426.,   2170.,   2744.,   3864.,
      3736.,   4984.,   3850.,   4882.,   3308.,   4060.,   2046.,   2454.,
      979.,    1471.,   2894.,   3974.,   5841.,   7605.,   9916.,   12460.,
      12172.,  14908.,  11349.,  13545.,  9110.,   10670.,  5359.,   6187.,
      3228.,   4172.,   8280.,   10296.,  15284.,  18500.,  24368.,  28912.,
      28400.,  33200.,  25124.,  28916.,  19384.,  22040.,  11052.,  12444.,
      7308.,   8572.,   17080.,  19736.,  29444.,  33620.,  44528.,  50352.,
      48560.,  54640.,  41204.,  45956.,  30744.,  34040.,  17052.,  18764.,
      11083.,  12247.,  24446.,  26870.,  40185.,  43965.,  58396.,  63628.,
      62188.,  67612.,  50877.,  55089.,  36806.,  39710.,  19879.,  21379.,
      11550.,  12470.,  24908.,  26812.,  40138.,  43090.,  57304.,  61368.,
      60344.,  64536.,  48514.,  51754.,  34556.,  36780.,  18406.,  19550.,
      8069.,   8601.,   17186.,  18282.,  27383.,  29075.,  38692.,  41012.,
      40468.,  42852.,  32195.,  34031.,  22714.,  23970.,  11993.,  12637.,
      197.,    473.,    930.,    1514.,   2231.,   3155.,   4132.,   5428.,
      6420.,   7780.,   5891.,   6959.,   4666.,   5410.,   2713.,   3101.,
      3062.,   3758.,   7484.,   8940.,   13330.,  15610.,  20664.,  23832.,
      25752.,  29048.,  21898.,  24466.,  16364.,  18140.,  9086.,   10006.,
      9235.,   10495.,  20942.,  23558.,  35217.,  39285.,  52156.,  57772.,
      60556.,  66364.,  49941.,  54441.,  36374.,  39470.,  19759.,  21355.,
      19356.,  21324.,  42584.,  46648.,  69812.,  76100.,  101168., 109808.,
      113392., 122288., 91940.,  98804.,  65976.,  70680.,  35372.,  37788.,
      33676.,  35964.,  71864.,  76568.,  114692., 121940., 162288., 172208.,
      174512., 184688., 138740., 146564., 97816.,  103160., 51612.,  54348.,
      34699.,  36631.,  73214.,  77174.,  115641., 121725., 162076., 170380.,
      172012., 180508., 135549., 142065., 94790.,  99230.,  49639.,  51907.,
      29854.,  31286.,  62540.,  65468.,  98122.,  102610., 136664., 142776.,
      143800., 150040., 112642., 117418., 78332.,  81580.,  40806.,  42462.,
      18501.,  19289.,  38562.,  40170.,  60215.,  62675.,  83492.,  86836.,
      87316.,  90724.,  68099.,  70703.,  47162.,  48930.,  24473.,  25373.,
      389.,    921.,    1826.,   2922.,   4343.,   6035.,   7972.,   10292.,
      12308.,  14692.,  11075.,  12911.,  8634.,   9890.,   4953.,   5597.,
      6006.,   7214.,   14396.,  16876.,  25234.,  29050.,  38584.,  43800.,
      47768.,  53112.,  39946.,  44050.,  29420.,  32220.,  16126.,  17558.,
      17491.,  19519.,  38990.,  43142.,  64593.,  70965.,  94396.,  103084.,
      108940., 117820., 88533.,  95337.,  63638.,  68270.,  34159.,  36523.,
      35484.,  38476.,  76888.,  83000.,  124340., 133700., 177968., 190704.,
      198384., 211376., 158756., 168692., 112568., 119320., 59692.,  63132.,
      60044.,  63356.,  126648., 133400., 199940., 210260., 280048., 294064.,
      300464., 314736., 236276., 247172., 164888., 172280., 86172.,  89932.,
      58315.,  61015.,  121982., 127478., 191097., 199485., 265756., 277132.,
      281836., 293404., 220221., 229041., 152774., 158750., 79399.,  82435.,
      48158.,  50102.,  100172., 104124., 156106., 162130., 216024., 224184.,
      227256., 235544., 176770., 183082., 122108., 126380., 63206.,  65374.,
      28933.,  29977.,  59938.,  62058.,  93047.,  96275.,  128292., 132660.,
      134164., 138596., 104003., 107375., 71610.,  73890.,  36953.,  38109.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72510.,    91086.,    119656.,   145960.,   179570.,   214370.,
      207650.,   244370.,   235730.,   274370.,   263810.,   304370.,
      245800.,   279784.,   211182.,   237822.,   204808.,   239560.,
      317024.,   365408.,   452920.,   515960.,   503160.,   568760.,
      553400.,   621560.,   603640.,   674360.,   542560.,   601184.,
      452680.,   498184.,   442370.,   498290.,   661400.,   738520.,
      918350.,   1017950.,  997150.,   1099950.,  1075950.,  1181950.,
      1154750.,  1263950.,  1015000.,  1104920.,  830930.,   900290.,
      789890.,   861170.,   1145240.,  1242840.,  1548750.,  1673950.,
      1627550.,  1755950.,  1706350.,  1837950.,  1785150.,  1919950.,
      1539800.,  1650200.,  1239890.,  1324610.,  1137410.,  1224050.,
      1629080.,  1747160.,  2179150.,  2329950.,  2257950.,  2411950.,
      2336750.,  2493950.,  2415550.,  2575950.,  2064600.,  2195480.,
      1648850.,  1748930.,  1484930.,  1586930.,  2112920.,  2251480.,
      2809550.,  2985950.,  2888350.,  3067950.,  2967150.,  3149950.,
      3045950.,  3231950.,  2589400.,  2740760.,  2057810.,  2173250.,
      1767112.,  1858696.,  2475872.,  2600032.,  3246200.,  3403960.,
      3322040.,  3482360.,  3397880.,  3560760.,  3473720.,  3639160.,
      2914400.,  3048800.,  2288392.,  2390728.,  1790430.,  1866606.,
      2487016.,  2590120.,  3234770.,  3365570.,  3301250.,  3433970.,
      3367730.,  3502370.,  3434210.,  3570770.,  2858920.,  2969704.,
      2228622.,  2312862.,  1003326.,  1095630.,  1459048.,  1583656.,
      1976690.,  2134370.,  2004770.,  2164370.,  2032850.,  2194370.,
      2060930.,  2224370.,  1781800.,  1914088.,  1436910.,  1537278.,
      1937416.,  2070472.,  2758240.,  2937696.,  3668280.,  3895160.,
      3718520.,  3947960.,  3768760.,  4000760.,  3819000.,  4053560.,
      3245920.,  3435616.,  2578504.,  2722312.,  3222530.,  3401330.,
      4532120.,  4773080.,  5961550.,  6265950.,  6040350.,  6347950.,
      6119150.,  6429950.,  6197950.,  6511950.,  5213400.,  5467160.,
      4102610.,  4294850.,  3570050.,  3764210.,  5015960.,  5277400.,
      6591950.,  6921950.,  6670750.,  7003950.,  6749550.,  7085950.,
      6828350.,  7167950.,  5738200.,  6012440.,  4511570.,  4719170.,
      3917570.,  4127090.,  5499800.,  5781720.,  7222350.,  7577950.,
      7301150.,  7659950.,  7379950.,  7741950.,  7458750.,  7823950.,
      6263000.,  6557720.,  4920530.,  5143490.,  4265090.,  4489970.,
      5983640.,  6286040.,  7852750.,  8233950.,  7931550.,  8315950.,
      8010350.,  8397950.,  8089150.,  8479950.,  6787800.,  7103000.,
      5329490.,  5567810.,  4482760.,  4672648.,  6227808.,  6483040.,
      8099960.,  8421560.,  8175800.,  8499960.,  8251640.,  8578360.,
      8327480.,  8656760.,  6928480.,  7193952.,  5397256.,  5597896.,
      4195806.,  4345710.,  5792488.,  5993896.,  7489490.,  7743170.,
      7555970.,  7811570.,  7622450.,  7879970.,  7688930.,  7948370.,
      6361000.,  6570088.,  4928910.,  5086878.,  1934142.,  2100174.,
      2798440.,  3021352.,  3773810.,  4054370.,  3801890.,  4084370.,
      3829970.,  4114370.,  3858050.,  4144370.,  3317800.,  3548392.,
      2662638.,  2836734.,  3670024.,  3901384.,  5199456.,  5509984.,
      6883640.,  7274360.,  6933880.,  7327160.,  6984120.,  7379960.,
      7034360.,  7432760.,  5949280.,  6270048.,  4704328.,  4946440.,
      6002690.,  6304370.,  8402840.,  8807640.,  11004750., 11513950.,
      11083550., 11595950., 11162350., 11677950., 11241150., 11759950.,
      9411800.,  9829400.,  7374290.,  7689410.,  6350210.,  6667250.,
      8886680.,  9311960.,  11635150., 12169950., 11713950., 12251950.,
      11792750., 12333950., 11871550., 12415950., 9936600.,  10374680.,
      7783250.,  8113730.,  6697730.,  7030130.,  9370520.,  9816280.,
      12265550., 12825950., 12344350., 12907950., 12423150., 12989950.,
      12501950., 13071950., 10461400., 10919960., 8192210.,  8538050.,
      7045250.,  7393010.,  9854360.,  10320600., 12895950., 13481950.,
      12974750., 13563950., 13053550., 13645950., 13132350., 13727950.,
      10986200., 11465240., 8601170.,  8962370.,  7198408.,  7486600.,
      9979744.,  10366048., 12953720., 13439160., 13029560., 13517560.,
      13105400., 13595960., 13181240., 13674360., 10942560., 11339104.,
      8506120.,  8805064.,  6601182.,  6824814.,  9097960.,  9397672.,
      11744210., 12120770., 11810690., 12189170., 11877170., 12257570.,
      11943650., 12325970., 9863080.,  10170472., 7629198.,  7860894.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,     220.,     764.,     826.,     2026.,    2104.,
      4216.,    3960.,    6584.,    5386.,    7738.,    5372.,    7196.,
      3662.,    4702.,    780.,     2220.,    4184.,    7576.,    10724.,
      16580.,   20912.,   29744.,   28720.,   38576.,   29828.,   37988.,
      25752.,   31704.,   15980.,   19212.,   7370.,    11258.,   22132.,
      30676.,   45054.,   59022.,   76904.,   97064.,   94760.,   116456.,
      88686.,   106110.,  71380.,   83764.,   42074.,   48650.,   24920.,
      32408.,   64304.,   80304.,   119176.,  144712.,  190560.,  226656.,
      222560.,  260704.,  197320.,  227464.,  152496.,  173616.,  87064.,
      98136.,   57240.,   67288.,   134064.,  155184.,  231496.,  264712.,
      350560.,  396896.,  382560.,  430944.,  325000.,  362824.,  242736.,
      268976.,  134744.,  148376.,  87530.,   96794.,   193204.,  212500.,
      317790.,  347886.,  462056.,  503720.,  492200.,  535400.,  402894.,
      436446.,  291604.,  314740.,  157562.,  169514.,  91500.,   98828.,
      197400.,  212568.,  318212.,  341732.,  454448.,  486832.,  478640.,
      512048.,  384932.,  410756.,  274264.,  291992.,  146124.,  155244.,
      64030.,   68270.,   136412.,  145148.,  217402.,  230890.,  307256.,
      325752.,  321400.,  340408.,  255754.,  270394.,  180476.,  190492.,
      95310.,   100446.,  1310.,    3502.,    6876.,    11516.,   16954.,
      24298.,   31800.,   42104.,   50040.,   60856.,   46090.,   54586.,
      36604.,   42524.,   21326.,   24414.,   23820.,   29356.,   58456.,
      70040.,   104420.,  122564.,  162224.,  187440.,  202800.,  229040.,
      172676.,  193124.,  129176.,  143320.,  71788.,   79116.,   72650.,
      82682.,   164980.,  185812.,  277758.,  310158.,  411752.,  456488.,
      478760.,  525032.,  395118.,  430974.,  287956.,  312628.,  156506.,
      169226.,  152920.,  168600.,  336688.,  369072.,  552328.,  602440.,
      800864.,  869728.,  898400.,  969312.,  728776.,  783496.,  523184.,
      560688.,  280600.,  299864.,  267160.,  285400.,  570288.,  607792.,
      910408.,  968200.,  1288544., 1367648., 1386080., 1467232., 1102216.,
      1164616., 777264.,  819888.,  410200.,  432024.,  275690.,  291098.,
      581812.,  613396.,  919134.,  967662.,  1288424., 1354664., 1367720.,
      1435496., 1077966., 1129950., 753940.,  789364.,  394874.,  412970.,
      237420.,  248844.,  497432.,  520792.,  780548.,  816356.,  1087280.,
      1136048., 1144240., 1194032., 896420.,  934532.,  623448.,  649368.,
      324812.,  338028.,  147230.,  153518.,  306908.,  319740.,  479290.,
      498922.,  664632.,  691320.,  695160.,  722360.,  542218.,  563002.,
      375548.,  389660.,  194894.,  202078.,  2590.,    6830.,    13532.,
      22268.,   33082.,   46570.,   61496.,   79992.,   96120.,   115128.,
      86794.,   101434.,  67836.,   77852.,   38990.,   44126.,   46860.,
      56492.,   112728.,  132504.,  198116.,  228548.,  303536.,  345136.,
      376880.,  419504.,  315524.,  348260.,  232600.,  254936.,  127596.,
      139020.,  137930.,  154106.,  307828.,  340948.,  510462.,  561294.,
      746600.,  815912.,  862760.,  933608.,  701550.,  755838.,  504532.,
      541492.,  270938.,  289802.,  280920.,  304792.,  609072.,  657840.,
      985480.,  1060168., 1411168., 1512800., 1574240., 1677920., 1260232.,
      1339528., 893872.,  947760.,  474136.,  501592.,  477080.,  503512.,
      1006512., 1060400., 1589320., 1671688., 2226528., 2338400., 2389600.,
      2503520., 1879432., 1966408., 1311792., 1370800., 685656.,  715672.,
      463850.,  485402.,  970420.,  1014292., 1520478., 1587438., 2114792.,
      2205608., 2243240., 2335592., 1753038., 1823454., 1216276., 1263988.,
      632186.,  656426.,  383340.,  398860.,  797464.,  829016.,  1242884.,
      1290980., 1720112., 1785264., 1809840., 1876016., 1407908., 1458308.,
      972632.,  1006744., 503500.,  520812.,  230430.,  238766.,  477404.,
      494332.,  741178.,  766954.,  1022008., 1056888., 1068920., 1104312.,
      828682.,  855610.,  570620.,  588828.,  294478.,  303710.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4389.,   4956.,   5541.,   6144.,   7276.,   8080.,   8908.,   9760.,
      10955.,  12020.,  13115.,  14240.,  12695.,  13820.,  14975.,  16160.,
      14435.,  15620.,  16835.,  18080.,  16175.,  17420.,  18695.,  20000.,
      15100.,  16144.,  17212.,  18304.,  12993.,  13812.,  14649.,  15504.,
      12532.,  13600.,  14692.,  15808.,  19440.,  20928.,  22448.,  24000.,
      27820.,  29760.,  31740.,  33760.,  30940.,  32960.,  35020.,  37120.,
      34060.,  36160.,  38300.,  40480.,  37180.,  39360.,  41580.,  43840.,
      33456.,  35264.,  37104.,  38976.,  27940.,  29344.,  30772.,  32224.,
      27215.,  28940.,  30695.,  32480.,  40740.,  43120.,  45540.,  48000.,
      56625.,  59700.,  62825.,  66000.,  61525.,  64700.,  67925.,  71200.,
      66425.,  69700.,  73025.,  76400.,  71325.,  74700.,  78125.,  81600.,
      62740.,  65520.,  68340.,  71200.,  51395.,  53540.,  55715.,  57920.,
      48815.,  51020.,  53255.,  55520.,  70820.,  73840.,  76900.,  80000.,
      95825.,  99700.,  103625., 107600., 100725., 104700., 108725., 112800.,
      105625., 109700., 113825., 118000., 110525., 114700., 118925., 123200.,
      95380.,  98800.,  102260., 105760., 76835.,  79460.,  82115.,  84800.,
      70415.,  73100.,  75815.,  78560.,  100900., 104560., 108260., 112000.,
      135025., 139700., 144425., 149200., 139925., 144700., 149525., 154400.,
      144825., 149700., 154625., 159600., 149725., 154700., 159725., 164800.,
      128020., 132080., 136180., 140320., 102275., 105380., 108515., 111680.,
      92015.,  95180.,  98375.,  101600., 130980., 135280., 139620., 144000.,
      174225., 179700., 185225., 190800., 179125., 184700., 190325., 196000.,
      184025., 189700., 195425., 201200., 188925., 194700., 200525., 206400.,
      160660., 165360., 170100., 174880., 127715., 131300., 134915., 138560.,
      109732., 112576., 115444., 118336., 153776., 157632., 161520., 165440.,
      201660., 206560., 211500., 216480., 206380., 211360., 216380., 221440.,
      211100., 216160., 221260., 226400., 215820., 220960., 226140., 231360.,
      181104., 185280., 189488., 193728., 142228., 145408., 148612., 151840.,
      111309., 113676., 116061., 118464., 154636., 157840., 161068., 164320.,
      201155., 205220., 209315., 213440., 205295., 209420., 213575., 217760.,
      209435., 213620., 217835., 222080., 213575., 217820., 222095., 226400.,
      177820., 181264., 184732., 188224., 138633., 141252., 143889., 146544.,
      61989.,  64860.,  67749.,  70656.,  90220.,  94096.,  97996.,  101920.,
      122315., 127220., 132155., 137120., 124055., 129020., 134015., 139040.,
      125795., 130820., 135875., 140960., 127535., 132620., 137735., 142880.,
      110332., 114448., 118588., 122752., 89025.,  92148.,  95289.,  98448.,
      120052., 124192., 128356., 132544., 170992., 176576., 182192., 187840.,
      227500., 234560., 241660., 248800., 230620., 237760., 244940., 252160.,
      233740., 240960., 248220., 255520., 236860., 244160., 251500., 258880.,
      201392., 207296., 213232., 219200., 160036., 164512., 169012., 173536.,
      200015., 205580., 211175., 216800., 281380., 288880., 296420., 304000.,
      370225., 379700., 389225., 398800., 375125., 384700., 394325., 404000.,
      380025., 389700., 399425., 409200., 384925., 394700., 404525., 414400.,
      323860., 331760., 339700., 347680., 254915., 260900., 266915., 272960.,
      221615., 227660., 233735., 239840., 311460., 319600., 327780., 336000.,
      409425., 419700., 430025., 440400., 414325., 424700., 435125., 445600.,
      419225., 429700., 440225., 450800., 424125., 434700., 445325., 456000.,
      356500., 365040., 373620., 382240., 280355., 286820., 293315., 299840.,
      243215., 249740., 256295., 262880., 341540., 350320., 359140., 368000.,
      448625., 459700., 470825., 482000., 453525., 464700., 475925., 487200.,
      458425., 469700., 481025., 492400., 463325., 474700., 486125., 497600.,
      389140., 398320., 407540., 416800., 305795., 312740., 319715., 326720.,
      264815., 271820., 278855., 285920., 371620., 381040., 390500., 400000.,
      487825., 499700., 511625., 523600., 492725., 504700., 516725., 528800.,
      497625., 509700., 521825., 534000., 502525., 514700., 526925., 539200.,
      421780., 431600., 441460., 451360., 331235., 338660., 346115., 353600.,
      278692., 284608., 290548., 296512., 387248., 395200., 403184., 411200.,
      503740., 513760., 523820., 533920., 508460., 518560., 528700., 538880.,
      513180., 523360., 533580., 543840., 517900., 528160., 538460., 548800.,
      430960., 439232., 447536., 455872., 335764., 342016., 348292., 354592.,
      261069., 265740., 270429., 275136., 360460., 366736., 373036., 379360.,
      466115., 474020., 481955., 489920., 470255., 478220., 486215., 494240.,
      474395., 482420., 490475., 498560., 478535., 486620., 494735., 502880.,
      395932., 402448., 408988., 415552., 306825., 311748., 316689., 321648.,
      119589., 124764., 129957., 135168., 173164., 180112., 187084., 194080.,
      233675., 242420., 251195., 260000., 235415., 244220., 253055., 261920.,
      237155., 246020., 254915., 263840., 238895., 247820., 256775., 265760.,
      205564., 212752., 219964., 227200., 165057., 170484., 175929., 181392.,
      227572., 234784., 242020., 249280., 322544., 332224., 341936., 351680.,
      427180., 439360., 451580., 463840., 430300., 442560., 454860., 467200.,
      433420., 445760., 458140., 470560., 436540., 448960., 461420., 473920.,
      369328., 379328., 389360., 399424., 292132., 299680., 307252., 314848.,
      372815., 382220., 391655., 401120., 522020., 534640., 547300., 560000.,
      683825., 699700., 715625., 731600., 688725., 704700., 720725., 736800.,
      693625., 709700., 725825., 742000., 698525., 714700., 730925., 747200.,
      584980., 598000., 611060., 624160., 458435., 468260., 478115., 488000.,
      394415., 404300., 414215., 424160., 552100., 565360., 578660., 592000.,
      723025., 739700., 756425., 773200., 727925., 744700., 761525., 778400.,
      732825., 749700., 766625., 783600., 737725., 754700., 771725., 788800.,
      617620., 631280., 644980., 658720., 483875., 494180., 504515., 514880.,
      416015., 426380., 436775., 447200., 582180., 596080., 610020., 624000.,
      762225., 779700., 797225., 814800., 767125., 784700., 802325., 820000.,
      772025., 789700., 807425., 825200., 776925., 794700., 812525., 830400.,
      650260., 664560., 678900., 693280., 509315., 520100., 530915., 541760.,
      437615., 448460., 459335., 470240., 612260., 626800., 641380., 656000.,
      801425., 819700., 838025., 856400., 806325., 824700., 843125., 861600.,
      811225., 829700., 848225., 866800., 816125., 834700., 853325., 872000.,
      682900., 697840., 712820., 727840., 534755., 546020., 557315., 568640.,
      447652., 456640., 465652., 474688., 620720., 632768., 644848., 656960.,
      805820., 820960., 836140., 851360., 810540., 825760., 841020., 856320.,
      815260., 830560., 845900., 861280., 819980., 835360., 850780., 866240.,
      680816., 693184., 705584., 718016., 529300., 538624., 547972., 557344.,
      410829., 417804., 424797., 431808., 566284., 575632., 585004., 594400.,
      731075., 742820., 754595., 766400., 735215., 747020., 758855., 770720.,
      739355., 751220., 763115., 775040., 743495., 755420., 767375., 779360.,
      614044., 623632., 633244., 642880., 475017., 482244., 489489., 496752.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1.,      4.,      9.,      16.,     10.,     24.,     42.,     64.,
      43.,     76.,     115.,    160.,    116.,    176.,    244.,    320.,
      228.,    304.,    388.,    480.,    319.,    388.,    463.,    544.,
      322.,    376.,    434.,    496.,    221.,    252.,    285.,    320.,
      38.,     80.,     126.,    176.,    236.,    336.,    444.,    560.,
      626.,    800.,    986.,    1184.,   1240.,   1504.,   1784.,   2080.,
      1720.,   2016.,   2328.,   2656.,   1802.,   2048.,   2306.,   2576.,
      1564.,   1744.,   1932.,   2128.,   974.,    1072.,   1174.,   1280.,
      431.,    548.,    671.,    800.,    1318.,   1576.,   1846.,   2128.,
      2709.,   3132.,   3573.,   4032.,   4652.,   5264.,   5900.,   6560.,
      5756.,   6416.,   7100.,   7808.,   5409.,   5940.,   6489.,   7056.,
      4366.,   4744.,   5134.,   5536.,   2579.,   2780.,   2987.,   3200.,
      1500.,   1728.,   1964.,   2208.,   3896.,   4384.,   4888.,   5408.,
      7252.,   8032.,   8836.,   9664.,   11632.,  12736.,  13872.,  15040.,
      13616.,  14784.,  15984.,  17216.,  12100.,  13024.,  13972.,  14944.,
      9368.,   10016.,  10680.,  11360.,  5356.,   5696.,   6044.,   6400.,
      3500.,   3808.,   4124.,   4448.,   8216.,   8864.,   9528.,   10208.,
      14212.,  15232.,  16276.,  17344.,  21552.,  22976.,  24432.,  25920.,
      23536.,  25024.,  26544.,  28096.,  20020.,  21184.,  22372.,  23584.,
      14968.,  15776.,  16600.,  17440.,  8316.,   8736.,   9164.,   9600.,
      5399.,   5684.,   5975.,   6272.,   11926.,  12520.,  13126.,  13744.,
      19629.,  20556.,  21501.,  22464.,  28556.,  29840.,  31148.,  32480.,
      30428.,  31760.,  33116.,  34496.,  24921.,  25956.,  27009.,  28080.,
      18046.,  18760.,  19486.,  20224.,  9755.,   10124.,  10499.,  10880.,
      5662.,   5888.,   6118.,   6352.,   12220.,  12688.,  13164.,  13648.,
      19706.,  20432.,  21170.,  21920.,  28152.,  29152.,  30168.,  31200.,
      29656.,  30688.,  31736.,  32800.,  23858.,  24656.,  25466.,  26288.,
      17004.,  17552.,  18108.,  18672.,  9062.,   9344.,   9630.,   9920.,
      3969.,   4100.,   4233.,   4368.,   8458.,   8728.,   9002.,   9280.,
      13483.,  13900.,  14323.,  14752.,  19060.,  19632.,  20212.,  20800.,
      19940.,  20528.,  21124.,  21728.,  15871.,  16324.,  16783.,  17248.,
      11202.,  11512.,  11826.,  12144.,  5917.,   6076.,   6237.,   6400.,
      65.,     132.,    201.,    272.,    394.,    536.,    682.,    832.,
      1003.,   1228.,   1459.,   1696.,   1908.,   2224.,   2548.,   2880.,
      3044.,   3376.,   3716.,   4064.,   2815.,   3076.,   3343.,   3616.,
      2242.,   2424.,   2610.,   2800.,   1309.,   1404.,   1501.,   1600.,
      1446.,   1616.,   1790.,   1968.,   3564.,   3920.,   4284.,   4656.,
      6386.,   6944.,   7514.,   8096.,   9944.,   10720.,  11512.,  12320.,
      12472.,  13280.,  14104.,  14944.,  10634.,  11264.,  11906.,  12560.,
      7964.,   8400.,   8844.,   9296.,   4430.,   4656.,   4886.,   5120.,
      4463.,   4772.,   5087.,   5408.,   10150.,  10792.,  11446.,  12112.,
      17109.,  18108.,  19125.,  20160.,  25388.,  26768.,  28172.,  29600.,
      29564.,  30992.,  32444.,  33920.,  24417.,  25524.,  26649.,  27792.,
      17806.,  18568.,  19342.,  20128.,  9683.,   10076.,  10475.,  10880.,
      9436.,   9920.,   10412.,  10912.,  20792.,  21792.,  22808.,  23840.,
      34132.,  35680.,  37252.,  38848.,  49520.,  51648.,  53808.,  56000.,
      55600.,  57792.,  60016.,  62272.,  45124.,  46816.,  48532.,  50272.,
      32408.,  33568.,  34744.,  35936.,  17388.,  17984.,  18588.,  19200.,
      16556.,  17120.,  17692.,  18272.,  35352.,  36512.,  37688.,  38880.,
      56452.,  58240.,  60052.,  61888.,  79920.,  82368.,  84848.,  87360.,
      86000.,  88512.,  91056.,  93632.,  68404.,  70336.,  72292.,  74272.,
      48248.,  49568.,  50904.,  52256.,  25468.,  26144.,  26828.,  27520.,
      17111.,  17588.,  18071.,  18560.,  36118.,  37096.,  38086.,  39088.,
      57069.,  58572.,  60093.,  61632.,  80012.,  82064.,  84140.,  86240.,
      84956.,  87056.,  89180.,  91328.,  66969.,  68580.,  70209.,  71856.,
      46846.,  47944.,  49054.,  50176.,  24539.,  25100.,  25667.,  26240.,
      14750.,  15104.,  15462.,  15824.,  30908.,  31632.,  32364.,  33104.,
      48506.,  49616.,  50738.,  51872.,  67576.,  69088.,  70616.,  72160.,
      71128.,  72672.,  74232.,  75808.,  55730.,  56912.,  58106.,  59312.,
      38764.,  39568.,  40380.,  41200.,  20198.,  20608.,  21022.,  21440.,
      9153.,   9348.,   9545.,   9744.,   19082.,  19480.,  19882.,  20288.,
      29803.,  30412.,  31027.,  31648.,  41332.,  42160.,  42996.,  43840.,
      43236.,  44080.,  44932.,  45792.,  33727.,  34372.,  35023.,  35680.,
      23362.,  23800.,  24242.,  24688.,  12125.,  12348.,  12573.,  12800.,
      129.,    260.,    393.,    528.,    778.,    1048.,   1322.,   1600.,
      1963.,   2380.,   2803.,   3232.,   3700.,   4272.,   4852.,   5440.,
      5860.,   6448.,   7044.,   7648.,   5311.,   5764.,   6223.,   6688.,
      4162.,   4472.,   4786.,   5104.,   2397.,   2556.,   2717.,   2880.,
      2854.,   3152.,   3454.,   3760.,   6892.,   7504.,   8124.,   8752.,
      12146.,  13088.,  14042.,  15008.,  18648.,  19936.,  21240.,  22560.,
      23224.,  24544.,  25880.,  27232.,  19466.,  20480.,  21506.,  22544.,
      14364.,  15056.,  15756.,  16464.,  7886.,   8240.,   8598.,   8960.,
      8495.,   8996.,   9503.,   10016.,  18982.,  20008.,  21046.,  22096.,
      31509.,  33084.,  34677.,  36288.,  46124.,  48272.,  50444.,  52640.,
      53372.,  55568.,  57788.,  60032.,  43425.,  45108.,  46809.,  48528.,
      31246.,  32392.,  33550.,  34720.,  16787.,  17372.,  17963.,  18560.,
      17372.,  18112.,  18860.,  19616.,  37688.,  39200.,  40728.,  42272.,
      61012.,  63328.,  65668.,  68032.,  87408.,  90560.,  93744.,  96960.,
      97584.,  100800., 104048., 107328., 78148.,  80608.,  83092.,  85600.,
      55448.,  57120.,  58808.,  60512.,  29420.,  30272.,  31132.,  32000.,
      29612.,  30432.,  31260.,  32096.,  62488.,  64160.,  65848.,  67552.,
      98692.,  101248., 103828., 106432., 138288., 141760., 145264., 148800.,
      148464., 152000., 155568., 159168., 116788., 119488., 122212., 124960.,
      81528.,  83360.,  85208.,  87072.,  42620.,  43552.,  44492.,  45440.,
      28823.,  29492.,  30167.,  30848.,  60310.,  61672.,  63046.,  64432.,
      94509.,  96588.,  98685.,  100800., 131468., 134288., 137132., 140000.,
      139484., 142352., 145244., 148160., 109017., 111204., 113409., 115632.,
      75646.,  77128.,  78622.,  80128.,  39323.,  40076.,  40835.,  41600.,
      23838.,  24320.,  24806.,  25296.,  49596.,  50576.,  51564.,  52560.,
      77306.,  78800.,  80306.,  81824.,  107000., 109024., 111064., 113120.,
      112600., 114656., 116728., 118816., 87602.,  89168.,  90746.,  92336.,
      60524.,  61584.,  62652.,  63728.,  31334.,  31872.,  32414.,  32960.,
      14337.,  14596.,  14857.,  15120.,  29706.,  30232.,  30762.,  31296.,
      46123.,  46924.,  47731.,  48544.,  63604.,  64688.,  65780.,  66880.,
      66532.,  67632.,  68740.,  69856.,  51583.,  52420.,  53263.,  54112.,
      35522.,  36088.,  36658.,  37232.,  18333.,  18620.,  18909.,  19200.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34005.,   38505.,   43149.,   47937.,   56636.,   63020.,   69596.,
      76364.,   85555.,   94015.,   102715.,  111655.,  99355.,   108295.,
      117475.,  126895.,  113155.,  122575.,  132235.,  142135.,  126955.,
      136855.,  146995.,  157375.,  118748.,  127052.,  135548.,  144236.,
      102333.,  108849.,  115509.,  122313.,  98156.,   106652.,  115340.,
      124220.,  152592.,  164432.,  176528.,  188880.,  218740.,  234180.,
      249940.,  266020.,  243540.,  259620.,  276020.,  292740.,  268340.,
      285060.,  302100.,  319460.,  293140.,  310500.,  328180.,  346180.,
      264080.,  278480.,  293136.,  308048.,  220748.,  231932.,  243308.,
      254876.,  214315.,  228055.,  242035.,  256255.,  321220.,  340180.,
      359460.,  379060.,  446925.,  471425.,  496325.,  521625.,  485925.,
      511225.,  536925.,  563025.,  524925.,  551025.,  577525.,  604425.,
      563925.,  590825.,  618125.,  645825.,  496420.,  518580.,  541060.,
      563860.,  406915.,  424015.,  441355.,  458935.,  386155.,  403735.,
      421555.,  439615.,  560580.,  584660.,  609060.,  633780.,  758925.,
      789825.,  821125.,  852825.,  797925.,  829625.,  861725.,  894225.,
      836925.,  869425.,  902325.,  935625.,  875925.,  909225.,  942925.,
      977025.,  756260.,  783540.,  811140.,  839060.,  609475.,  630415.,
      651595.,  673015.,  557995.,  579415.,  601075.,  622975.,  799940.,
      829140.,  858660.,  888500.,  1070925., 1108225., 1145925., 1184025.,
      1109925., 1148025., 1186525., 1225425., 1148925., 1187825., 1227125.,
      1266825., 1187925., 1227625., 1267725., 1308225., 1016100., 1048500.,
      1081220., 1114260., 812035.,  836815.,  861835.,  887095.,  729835.,
      755095.,  780595.,  806335.,  1039300., 1073620., 1108260., 1143220.,
      1382925., 1426625., 1470725., 1515225., 1421925., 1466425., 1511325.,
      1556625., 1460925., 1506225., 1551925., 1598025., 1499925., 1546025.,
      1592525., 1639425., 1275940., 1313460., 1351300., 1389460., 1014595.,
      1043215., 1072075., 1101175., 872204.,  894908.,  917804.,  940892.,
      1222544., 1253328., 1284368., 1315664., 1603540., 1642660., 1682100.,
      1721860., 1641140., 1680900., 1720980., 1761380., 1678740., 1719140.,
      1759860., 1800900., 1716340., 1757380., 1798740., 1840420., 1440528.,
      1473872., 1507472., 1541328., 1131500., 1156892., 1182476., 1208252.,
      885765.,  904665.,  923709.,  942897.,  1230716., 1256300., 1282076.,
      1308044., 1601155., 1633615., 1666315., 1699255., 1634155., 1667095.,
      1700275., 1733695., 1667155., 1700575., 1734235., 1768135., 1700155.,
      1734055., 1768195., 1802575., 1415708., 1443212., 1470908., 1498796.,
      1103853., 1124769., 1145829., 1167033., 490197.,  513129.,  536205.,
      559425.,  714044.,  745004.,  776156.,  807500.,  968755.,  1007935.,
      1047355., 1087015., 982555.,  1022215., 1062115., 1102255., 996355.,
      1036495., 1076875., 1117495., 1010155., 1050775., 1091635., 1132735.,
      874460.,  907340.,  940412.,  973676.,  705981.,  730929.,  756021.,
      781257.,  952172.,  985244.,  1018508., 1051964., 1356816., 1401424.,
      1446288., 1491408., 1805940., 1862340., 1919060., 1976100., 1830740.,
      1887780., 1945140., 2002820., 1855540., 1913220., 1971220., 2029540.,
      1880340., 1938660., 1997300., 2056260., 1599376., 1646544., 1693968.,
      1741648., 1271372., 1307132., 1343084., 1379228., 1589035., 1633495.,
      1678195., 1723135., 2236100., 2296020., 2356260., 2416820., 2942925.,
      3018625., 3094725., 3171225., 2981925., 3058425., 3135325., 3212625.,
      3020925., 3098225., 3175925., 3254025., 3059925., 3138025., 3216525.,
      3295425., 2575140., 2638260., 2701700., 2765460., 2027395., 2075215.,
      2123275., 2171575., 1760875., 1809175., 1857715., 1906495., 2475460.,
      2540500., 2605860., 2671540., 3254925., 3337025., 3419525., 3502425.,
      3293925., 3376825., 3460125., 3543825., 3332925., 3416625., 3500725.,
      3585225., 3371925., 3456425., 3541325., 3626625., 2834980., 2903220.,
      2971780., 3040660., 2229955., 2281615., 2333515., 2385655., 1932715.,
      1984855., 2037235., 2089855., 2714820., 2784980., 2855460., 2926260.,
      3566925., 3655425., 3744325., 3833625., 3605925., 3695225., 3784925.,
      3875025., 3644925., 3735025., 3825525., 3916425., 3683925., 3774825.,
      3866125., 3957825., 3094820., 3168180., 3241860., 3315860., 2432515.,
      2488015., 2543755., 2599735., 2104555., 2160535., 2216755., 2273215.,
      2954180., 3029460., 3105060., 3180980., 3878925., 3973825., 4069125.,
      4164825., 3917925., 4013625., 4109725., 4206225., 3956925., 4053425.,
      4150325., 4247625., 3995925., 4093225., 4190925., 4289025., 3354660.,
      3433140., 3511940., 3591060., 2635075., 2694415., 2753995., 2813815.,
      2217740., 2265020., 2312492., 2360156., 3082128., 3145680., 3209488.,
      3273552., 4009940., 4090020., 4170420., 4251140., 4047540., 4128260.,
      4209300., 4290660., 4085140., 4166500., 4248180., 4330180., 4122740.,
      4204740., 4287060., 4369700., 3431184., 3497296., 3563664., 3630288.,
      2673644., 2723612., 2773772., 2824124., 2079237., 2116569., 2154045.,
      2191665., 2871164., 2921324., 2971676., 3022220., 3713155., 3776335.,
      3839755., 3903415., 3746155., 3809815., 3873715., 3937855., 3779155.,
      3843295., 3907675., 3972295., 3812155., 3876775., 3941635., 4006735.,
      3154460., 3206540., 3258812., 3311276., 2444781., 2484129., 2523621.,
      2563257., 946389.,  987753.,  1029261., 1070913., 1371452., 1426988.,
      1482716., 1538636., 1851955., 1921855., 1991995., 2062375., 1865755.,
      1936135., 2006755., 2077615., 1879555., 1950415., 2021515., 2092855.,
      1893355., 1964695., 2036275., 2108095., 1630172., 1687628., 1745276.,
      1803116., 1309629., 1353009., 1396533., 1440201., 1806188., 1863836.,
      1921676., 1979708., 2561040., 2638416., 2716048., 2793936., 3393140.,
      3490500., 3588180., 3686180., 3417940., 3515940., 3614260., 3712900.,
      3442740., 3541380., 3640340., 3739620., 3467540., 3566820., 3666420.,
      3766340., 2934672., 3014608., 3094800., 3175248., 2321996., 2382332.,
      2442860., 2503580., 2963755., 3038935., 3114355., 3190015., 4150980.,
      4251860., 4353060., 4454580., 5438925., 5565825., 5693125., 5820825.,
      5477925., 5605625., 5733725., 5862225., 5516925., 5645425., 5774325.,
      5903625., 5555925., 5685225., 5814925., 5945025., 4653860., 4757940.,
      4862340., 4967060., 3647875., 3726415., 3805195., 3884215., 3135595.,
      3214615., 3293875., 3373375., 4390340., 4496340., 4602660., 4709300.,
      5750925., 5884225., 6017925., 6152025., 5789925., 5924025., 6058525.,
      6193425., 5828925., 5963825., 6099125., 6234825., 5867925., 6003625.,
      6139725., 6276225., 4913700., 5022900., 5132420., 5242260., 3850435.,
      3932815., 4015435., 4098295., 3307435., 3390295., 3473395., 3556735.,
      4629700., 4740820., 4852260., 4964020., 6062925., 6202625., 6342725.,
      6483225., 6101925., 6242425., 6383325., 6524625., 6140925., 6282225.,
      6423925., 6566025., 6179925., 6322025., 6464525., 6607425., 5173540.,
      5287860., 5402500., 5517460., 4052995., 4139215., 4225675., 4312375.,
      3479275., 3565975., 3652915., 3740095., 4869060., 4985300., 5101860.,
      5218740., 6374925., 6521025., 6667525., 6814425., 6413925., 6560825.,
      6708125., 6855825., 6452925., 6600625., 6748725., 6897225., 6491925.,
      6640425., 6789325., 6938625., 5433380., 5552820., 5672580., 5792660.,
      4255555., 4345615., 4435915., 4526455., 3563276., 3635132., 3707180.,
      3779420., 4941712., 5038032., 5134608., 5231440., 6416340., 6537380.,
      6658740., 6780420., 6453940., 6575620., 6697620., 6819940., 6491540.,
      6613860., 6736500., 6859460., 6529140., 6652100., 6775380., 6898980.,
      5421840., 5520720., 5619856., 5719248., 4215788., 4290332., 4365068.,
      4439996., 3272709., 3328473., 3384381., 3440433., 4511612., 4586348.,
      4661276., 4736396., 5825155., 5919055., 6013195., 6107575., 5858155.,
      5952535., 6047155., 6142015., 5891155., 5986015., 6081115., 6176455.,
      5924155., 6019495., 6115075., 6210895., 4893212., 4969868., 5046716.,
      5123756., 3785709., 3843489., 3901413., 3959481.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5.,       25.,      61.,      113.,     58.,      162.,     298.,
      466.,     287.,     539.,     839.,     1187.,    820.,     1284.,
      1812.,    2404.,    1684.,    2276.,    2932.,    3652.,    2423.,
      2963.,    3551.,    4187.,    2474.,    2898.,    3354.,    3842.,
      1709.,    1953.,    2213.,    2489.,    226.,     554.,     914.,
      1306.,    1700.,    2484.,    3332.,    4244.,    4678.,    6046.,
      7510.,    9070.,    9416.,    11496.,   13704.,   16040.,   13192.,
      15528.,   17992.,   20584.,   13942.,   15886.,   17926.,   20062.,
      12164.,   13588.,   15076.,   16628.,   7602.,    8378.,    9186.,
      10026.,   3223.,    4147.,    5119.,    6139.,    10046.,   12086.,
      14222.,   16454.,   20853.,   24201.,   27693.,   31329.,   36028.,
      40876.,   45916.,   51148.,   44764.,   49996.,   55420.,   61036.,
      42237.,   46449.,   50805.,   55305.,   34190.,   37190.,   40286.,
      43478.,   20239.,   21835.,   23479.,   25171.,   11556.,   13364.,
      15236.,   17172.,   30216.,   34088.,   38088.,   42216.,   56492.,
      62684.,   69068.,   75644.,   90896.,   99664.,   108688.,  117968.,
      106640.,  115920.,  125456.,  135248.,  94988.,   102332.,  109868.,
      117596.,  73672.,   78824.,   84104.,   89512.,   42180.,   44884.,
      47652.,   50484.,   27396.,   29844.,   32356.,   34932.,   64456.,
      69608.,   74888.,   80296.,   111692.,  119804.,  128108.,  136604.,
      169616.,  180944.,  192528.,  204368.,  185360.,  197200.,  209296.,
      221648.,  157868.,  167132.,  176588.,  186236.,  118152.,  124584.,
      131144.,  137832.,  65700.,   69044.,   72452.,   75924.,   42631.,
      44899.,   47215.,   49579.,   94238.,   98966.,   103790.,  108710.,
      155205.,  162585.,  170109.,  177777.,  225916.,  236140.,  246556.,
      257164.,  240796.,  251404.,  262204.,  273196.,  197325.,  205569.,
      213957.,  222489.,  142958.,  148646.,  154430.,  160310.,  77311.,
      80251.,   83239.,   86275.,   44850.,   46650.,   48482.,   50346.,
      96836.,   100564.,  104356.,  108212.,  156214.,  161998.,  167878.,
      173854.,  223240.,  231208.,  239304.,  247528.,  235208.,  243432.,
      251784.,  260264.,  189286.,  195646.,  202102.,  208654.,  134948.,
      139316.,  143748.,  148244.,  71938.,   74186.,   76466.,   78778.,
      31493.,   32537.,   33597.,   34673.,   67130.,   69282.,   71466.,
      73682.,   107039.,  110363.,  113735.,  117155.,  151348.,  155908.,
      160532.,  165220.,  158356.,  163044.,  167796.,  172612.,  126071.,
      129683.,  133343.,  137051.,  89002.,   91474.,   93978.,   96514.,
      47021.,   48289.,   49573.,   50873.,   389.,     921.,     1469.,
      2033.,    2874.,    4002.,    5162.,    6354.,    7583.,    9371.,
      11207.,   13091.,   14644.,   17156.,   19732.,   22372.,   23700.,
      26340.,   29044.,   31812.,   22007.,   24083.,   26207.,   28379.,
      17578.,   19026.,   20506.,   22018.,   10285.,   11041.,   11813.,
      12601.,   11234.,   12586.,   13970.,   15386.,   27812.,   30644.,
      33540.,   36500.,   49990.,   54430.,   58966.,   63598.,   78024.,
      84200.,   90504.,   96936.,   98184.,   104616.,  111176.,  117864.,
      83830.,   88846.,   93958.,   99166.,   62852.,   66324.,   69860.,
      73460.,   34994.,   36794.,   38626.,   40490.,   35095.,   37555.,
      40063.,   42619.,   79934.,   85046.,   90254.,   95558.,   134901.,
      142857.,  150957.,  159201.,  200380.,  211372.,  222556.,  233932.,
      233692.,  245068.,  256636.,  268396.,  193149.,  201969.,  210933.,
      220041.,  140942.,  147014.,  153182.,  159446.,  76687.,   79819.,
      82999.,   86227.,   74532.,   78388.,   82308.,   86292.,   164360.,
      172328.,  180424.,  188648.,  269996.,  282332.,  294860.,  307580.,
      391952.,  408912.,  426128.,  443600.,  440464.,  457936.,  475664.,
      493648.,  357644.,  371132.,  384812.,  398684.,  256968.,  266216.,
      275592.,  285096.,  137924.,  142676.,  147492.,  152372.,  131332.,
      135828.,  140388.,  145012.,  280520.,  289768.,  299144.,  308648.,
      448076.,  462332.,  476780.,  491420.,  634512.,  654032.,  673808.,
      693840.,  683024.,  703056.,  723344.,  743888.,  543404.,  558812.,
      574412.,  590204.,  383368.,  393896.,  404552.,  415336.,  202404.,
      207796.,  213252.,  218772.,  135943.,  139747.,  143599.,  147499.,
      287006.,  294806.,  302702.,  310694.,  453573.,  465561.,  477693.,
      489969.,  636028.,  652396.,  668956.,  685708.,  675484.,  692236.,
      709180.,  726316.,  532557.,  545409.,  558405.,  571545.,  372590.,
      381350.,  390206.,  399158.,  195199.,  199675.,  204199.,  208771.,
      117298.,  120122.,  122978.,  125866.,  245828.,  251604.,  257444.,
      263348.,  385846.,  394702.,  403654.,  412702.,  537608.,  549672.,
      561864.,  574184.,  565960.,  578280.,  590728.,  603304.,  443494.,
      452926.,  462454.,  472078.,  308516.,  314932.,  321412.,  327956.,
      160770.,  164042.,  167346.,  170682.,  72837.,   74393.,   75965.,
      77553.,   151866.,  155042.,  158250.,  161490.,  237215.,  242075.,
      246983.,  251939.,  329012.,  335620.,  342292.,  349028.,  344212.,
      350948.,  357748.,  364612.,  268535.,  273683.,  278879.,  284123.,
      186026.,  189522.,  193050.,  196610.,  96557.,   98337.,   100133.,
      101945.,  773.,     1817.,    2877.,    3953.,    5690.,    7842.,
      10026.,   12242.,   14879.,   18203.,   21575.,   24995.,   28468.,
      33028.,   37652.,   42340.,   45716.,   50404.,   55156.,   59972.,
      41591.,   45203.,   48863.,   52571.,   32682.,   35154.,   37658.,
      40194.,   18861.,   20129.,   21413.,   22713.,   22242.,   24618.,
      27026.,   29466.,   53924.,   58804.,   63748.,   68756.,   95302.,
      102814.,  110422.,  118126.,  146632.,  156904.,  167304.,  177832.,
      183176.,  193704.,  204360.,  215144.,  153718.,  161806.,  169990.,
      178270.,  113540.,  119060.,  124644.,  130292.,  62386.,   65210.,
      68066.,   70954.,   66967.,   70963.,   75007.,   79099.,   149822.,
      158006.,  166286.,  174662.,  248949.,  261513.,  274221.,  287073.,
      364732.,  381868.,  399196.,  416716.,  422620.,  440140.,  457852.,
      475756.,  344061.,  357489.,  371061.,  384777.,  247694.,  256838.,
      266078.,  275414.,  133135.,  137803.,  142519.,  147283.,  137508.,
      143412.,  149380.,  155412.,  298504.,  310568.,  322760.,  335080.,
      483500.,  501980.,  520652.,  539516.,  693008.,  718160.,  743568.,
      769232.,  774288.,  799952.,  825872.,  852048.,  620300.,  639932.,
      659756.,  679772.,  440264.,  453608.,  467080.,  480680.,  233668.,
      240468.,  247332.,  254260.,  235268.,  241812.,  248420.,  255092.,
      496584.,  509928.,  523400.,  537000.,  784460.,  804860.,  825452.,
      846236.,  1099408., 1127120., 1155088., 1183312., 1180688., 1208912.,
      1237392., 1266128., 928940.,  950492.,  972236.,  994172.,  648584.,
      663208.,  677960.,  692840.,  339108.,  346548.,  354052.,  361620.,
      229255.,  234595.,  239983.,  245419.,  479774.,  490646.,  501614.,
      512678.,  751941.,  768537.,  785277.,  802161.,  1046140., 1068652.,
      1091356., 1114252., 1110172., 1133068., 1156156., 1179436., 867789.,
      885249.,  902853.,  920601.,  602222.,  614054.,  625982.,  638006.,
      313087.,  319099.,  325159.,  331267.,  189746.,  193594.,  197474.,
      201386.,  394820.,  402644.,  410532.,  418484.,  615478.,  627406.,
      639430.,  651550.,  851976.,  868136.,  884424.,  900840.,  896712.,
      913128.,  929672.,  946344.,  697702.,  710206.,  722806.,  735502.,
      482084.,  490548.,  499076.,  507668.,  249602.,  253898.,  258226.,
      262586.,  114181.,  116249.,  118333.,  120433.,  236602.,  240802.,
      245034.,  249298.,  367391.,  373787.,  380231.,  386723.,  506676.,
      515332.,  524052.,  532836.,  530068.,  538852.,  547700.,  556612.,
      410999.,  417683.,  424415.,  431195.,  283050.,  287570.,  292122.,
      296706.,  146093.,  148385.,  150693.,  153017.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, SAME3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      267630.,   303486.,   340494.,   378654.,   446824.,   497704.,
      550120.,   604072.,   676130.,   743570.,   812930.,   884210.,
      786050.,   857330.,   930530.,   1005650.,  895970.,   971090.,
      1048130.,  1127090.,  1005890.,  1084850.,  1165730.,  1248530.,
      941800.,   1008040.,  1075816.,  1145128.,  812238.,   864222.,
      917358.,   971646.,   776872.,   844648.,   913960.,   984808.,
      1209056.,  1303520.,  1400032.,  1498592.,  1734680.,  1857880.,
      1983640.,  2111960.,  1932440.,  2060760.,  2191640.,  2325080.,
      2130200.,  2263640.,  2399640.,  2538200.,  2327960.,  2466520.,
      2607640.,  2751320.,  2098400.,  2213344.,  2330336.,  2449376.,
      1754920.,  1844200.,  1935016.,  2027368.,  1700930.,  1810610.,
      1922210.,  2035730.,  2551000.,  2702360.,  2856280.,  3012760.,
      3551150.,  3746750.,  3945550.,  4147550.,  3862350.,  4064350.,
      4269550.,  4477950.,  4173550.,  4381950.,  4593550.,  4808350.,
      4484750.,  4699550.,  4917550.,  5138750.,  3949400.,  4126360.,
      4305880.,  4487960.,  3238370.,  3374930.,  3513410.,  3653810.,
      3071810.,  3212210.,  3354530.,  3498770.,  4460760.,  4653080.,
      4847960.,  5045400.,  6040750.,  6287550.,  6537550.,  6790750.,
      6351950.,  6605150.,  6861550.,  7121150.,  6663150.,  6922750.,
      7185550.,  7451550.,  6974350.,  7240350.,  7509550.,  7781950.,
      6023000.,  6240920.,  6461400.,  6684440.,  4855010.,  5022290.,
      5191490.,  5362610.,  4442690.,  4613810.,  4786850.,  4961810.,
      6370520.,  6603800.,  6839640.,  7078040.,  8530350.,  8828350.,
      9129550.,  9433950.,  8841550.,  9145950.,  9453550.,  9764350.,
      9152750.,  9463550.,  9777550.,  10094750., 9463950.,  9781150.,
      10101550., 10425150., 8096600.,  8355480.,  8616920.,  8880920.,
      6471650.,  6669650.,  6869570.,  7071410.,  5813570.,  6015410.,
      6219170.,  6424850.,  8280280.,  8554520.,  8831320.,  9110680.,
      11019950., 11369150., 11721550., 12077150., 11331150., 11686750.,
      12045550., 12407550., 11642350., 12004350., 12369550., 12737950.,
      11953550., 12321950., 12693550., 13068350., 10170200., 10470040.,
      10772440., 11077400., 8088290.,  8317010.,  8547650.,  8780210.,
      6955048.,  7136488.,  7319464.,  7503976.,  9749728.,  9995744.,
      10243808., 10493920., 12789400., 13102040., 13417240., 13735000.,
      13089560., 13407320., 13727640., 14050520., 13389720., 13712600.,
      14038040., 14366040., 13689880., 14017880., 14348440., 14681560.,
      11491040., 11757536., 12026080., 12296672., 9026728.,  9229672.,
      9434152.,  9640168.,  7067310.,  7218366.,  7370574.,  7523934.,
      9820264.,  10024744., 10230760., 10438312., 12776930., 13036370.,
      13297730., 13561010., 13040450., 13303730., 13568930., 13836050.,
      13303970., 13571090., 13840130., 14111090., 13567490., 13838450.,
      14111330., 14386130., 11298280., 11518120., 11739496., 11962408.,
      8809998.,  8977182.,  9145518.,  9315006.,  267630.,   303486.,
      340494.,   378654.,   446824.,   497704.,   550120.,   604072.,
      676130.,   743570.,   812930.,   884210.,   786050.,   857330.,
      930530.,   1005650.,  895970.,   971090.,   1048130.,  1127090.,
      1005890.,  1084850.,  1165730.,  1248530.,  941800.,   1008040.,
      1075816.,  1145128.,  812238.,   864222.,   917358.,   971646.,
      776872.,   844648.,   913960.,   984808.,   1209056.,  1303520.,
      1400032.,  1498592.,  1734680.,  1857880.,  1983640.,  2111960.,
      1932440.,  2060760.,  2191640.,  2325080.,  2130200.,  2263640.,
      2399640.,  2538200.,  2327960.,  2466520.,  2607640.,  2751320.,
      2098400.,  2213344.,  2330336.,  2449376.,  1754920.,  1844200.,
      1935016.,  2027368.,  1700930.,  1810610.,  1922210.,  2035730.,
      2551000.,  2702360.,  2856280.,  3012760.,  3551150.,  3746750.,
      3945550.,  4147550.,  3862350.,  4064350.,  4269550.,  4477950.,
      4173550.,  4381950.,  4593550.,  4808350.,  4484750.,  4699550.,
      4917550.,  5138750.,  3949400.,  4126360.,  4305880.,  4487960.,
      3238370.,  3374930.,  3513410.,  3653810.,  3071810.,  3212210.,
      3354530.,  3498770.,  4460760.,  4653080.,  4847960.,  5045400.,
      6040750.,  6287550.,  6537550.,  6790750.,  6351950.,  6605150.,
      6861550.,  7121150.,  6663150.,  6922750.,  7185550.,  7451550.,
      6974350.,  7240350.,  7509550.,  7781950.,  6023000.,  6240920.,
      6461400.,  6684440.,  4855010.,  5022290.,  5191490.,  5362610.,
      4442690.,  4613810.,  4786850.,  4961810.,  6370520.,  6603800.,
      6839640.,  7078040.,  8530350.,  8828350.,  9129550.,  9433950.,
      8841550.,  9145950.,  9453550.,  9764350.,  9152750.,  9463550.,
      9777550.,  10094750., 9463950.,  9781150.,  10101550., 10425150.,
      8096600.,  8355480.,  8616920.,  8880920.,  6471650.,  6669650.,
      6869570.,  7071410.,  5813570.,  6015410.,  6219170.,  6424850.,
      8280280.,  8554520.,  8831320.,  9110680.,  11019950., 11369150.,
      11721550., 12077150., 11331150., 11686750., 12045550., 12407550.,
      11642350., 12004350., 12369550., 12737950., 11953550., 12321950.,
      12693550., 13068350., 10170200., 10470040., 10772440., 11077400.,
      8088290.,  8317010.,  8547650.,  8780210.,  6955048.,  7136488.,
      7319464.,  7503976.,  9749728.,  9995744.,  10243808., 10493920.,
      12789400., 13102040., 13417240., 13735000., 13089560., 13407320.,
      13727640., 14050520., 13389720., 13712600., 14038040., 14366040.,
      13689880., 14017880., 14348440., 14681560., 11491040., 11757536.,
      12026080., 12296672., 9026728.,  9229672.,  9434152.,  9640168.,
      7067310.,  7218366.,  7370574.,  7523934.,  9820264.,  10024744.,
      10230760., 10438312., 12776930., 13036370., 13297730., 13561010.,
      13040450., 13303730., 13568930., 13836050., 13303970., 13571090.,
      13840130., 14111090., 13567490., 13838450., 14111330., 14386130.,
      11298280., 11518120., 11739496., 11962408., 8809998.,  8977182.,
      9145518.,  9315006.,  267630.,   303486.,   340494.,   378654.,
      446824.,   497704.,   550120.,   604072.,   676130.,   743570.,
      812930.,   884210.,   786050.,   857330.,   930530.,   1005650.,
      895970.,   971090.,   1048130.,  1127090.,  1005890.,  1084850.,
      1165730.,  1248530.,  941800.,   1008040.,  1075816.,  1145128.,
      812238.,   864222.,   917358.,   971646.,   776872.,   844648.,
      913960.,   984808.,   1209056.,  1303520.,  1400032.,  1498592.,
      1734680.,  1857880.,  1983640.,  2111960.,  1932440.,  2060760.,
      2191640.,  2325080.,  2130200.,  2263640.,  2399640.,  2538200.,
      2327960.,  2466520.,  2607640.,  2751320.,  2098400.,  2213344.,
      2330336.,  2449376.,  1754920.,  1844200.,  1935016.,  2027368.,
      1700930.,  1810610.,  1922210.,  2035730.,  2551000.,  2702360.,
      2856280.,  3012760.,  3551150.,  3746750.,  3945550.,  4147550.,
      3862350.,  4064350.,  4269550.,  4477950.,  4173550.,  4381950.,
      4593550.,  4808350.,  4484750.,  4699550.,  4917550.,  5138750.,
      3949400.,  4126360.,  4305880.,  4487960.,  3238370.,  3374930.,
      3513410.,  3653810.,  3071810.,  3212210.,  3354530.,  3498770.,
      4460760.,  4653080.,  4847960.,  5045400.,  6040750.,  6287550.,
      6537550.,  6790750.,  6351950.,  6605150.,  6861550.,  7121150.,
      6663150.,  6922750.,  7185550.,  7451550.,  6974350.,  7240350.,
      7509550.,  7781950.,  6023000.,  6240920.,  6461400.,  6684440.,
      4855010.,  5022290.,  5191490.,  5362610.,  4442690.,  4613810.,
      4786850.,  4961810.,  6370520.,  6603800.,  6839640.,  7078040.,
      8530350.,  8828350.,  9129550.,  9433950.,  8841550.,  9145950.,
      9453550.,  9764350.,  9152750.,  9463550.,  9777550.,  10094750.,
      9463950.,  9781150.,  10101550., 10425150., 8096600.,  8355480.,
      8616920.,  8880920.,  6471650.,  6669650.,  6869570.,  7071410.,
      5813570.,  6015410.,  6219170.,  6424850.,  8280280.,  8554520.,
      8831320.,  9110680.,  11019950., 11369150., 11721550., 12077150.,
      11331150., 11686750., 12045550., 12407550., 11642350., 12004350.,
      12369550., 12737950., 11953550., 12321950., 12693550., 13068350.,
      10170200., 10470040., 10772440., 11077400., 8088290.,  8317010.,
      8547650.,  8780210.,  6955048.,  7136488.,  7319464.,  7503976.,
      9749728.,  9995744.,  10243808., 10493920., 12789400., 13102040.,
      13417240., 13735000., 13089560., 13407320., 13727640., 14050520.,
      13389720., 13712600., 14038040., 14366040., 13689880., 14017880.,
      14348440., 14681560., 11491040., 11757536., 12026080., 12296672.,
      9026728.,  9229672.,  9434152.,  9640168.,  7067310.,  7218366.,
      7370574.,  7523934.,  9820264.,  10024744., 10230760., 10438312.,
      12776930., 13036370., 13297730., 13561010., 13040450., 13303730.,
      13568930., 13836050., 13303970., 13571090., 13840130., 14111090.,
      13567490., 13838450., 14111330., 14386130., 11298280., 11518120.,
      11739496., 11962408., 8809998.,  8977182.,  9145518.,  9315006.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}
TYPED_TEST(InputBackpropWindow5Stride1, VALID3x8x8x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30.,      174.,      446.,     846.,     380.,     1180.,    2236.,
      3548.,    2074.,     4042.,    6394.,    9130.,    6136.,    9784.,
      13944.,   18616.,    12920.,   17592.,   22776.,   28472.,   18874.,
      23146.,   27802.,    32842.,   19388.,   22748.,   26364.,   30236.,
      13438.,   15374.,    17438.,   19630.,   1500.,    4092.,    6940.,
      10044.,   12856.,    19064.,   25784.,   33016.,   36116.,   46964.,
      58580.,   70964.,    73328.,   89840.,   107376.,  125936.,  103280.,
      121840.,  141424.,   162032.,  109652.,  125108.,  141332.,  158324.,
      95928.,   107256.,   119096.,  131448.,  60060.,   66236.,   72668.,
      79356.,   24890.,    32234.,   39962.,   48074.,   78388.,   94612.,
      111604.,  129364.,   163566.,  190206.,  217998.,  246942.,  283496.,
      322088.,  362216.,   403880.,  353000.,  394664.,  437864.,  482600.,
      333774.,  367326.,   402030.,  437886.,  270580.,  294484.,  319156.,
      344596.,  160346.,   173066.,  186170.,  199658.,  90680.,   105080.,
      119992.,  135416.,   237936.,  268784.,  300656.,  333552.,  445864.,
      495208.,  546088.,   598504.,  718560.,  788448.,  860384.,  934368.,
      844000.,  917984.,   994016.,  1072096., 752680.,  811240.,  871336.,
      932968.,  584304.,   625392.,  667504.,  710640.,  334776.,  356344.,
      378424.,  401016.,   216760.,  236280.,  256312.,  276856.,  510576.,
      551664.,  593776.,   636912.,  885544.,  950248.,  1016488., 1084264.,
      1345760., 1436128.,  1528544., 1623008., 1471200., 1565664., 1662176.,
      1760736., 1253800.,  1327720., 1403176., 1480168., 938864.,  990192.,
      1042544., 1095920.,  522296.,  548984.,  576184.,  603896.,  338810.,
      356906.,  375386.,   394250.,  749236.,  786964.,  825460.,  864724.,
      1234350., 1293246.,  1353294., 1414494., 1797224., 1878824., 1961960.,
      2046632., 1915880.,  2000552., 2086760., 2174504., 1570446., 1636254.,
      1703214., 1771326.,  1138036., 1183444., 1229620., 1276564., 615578.,
      639050.,  662906.,   687146.,  357020.,  371388.,  386012.,  400892.,
      771000.,  800760.,   831032.,  861816.,  1243988., 1290164., 1337108.,
      1384820., 1778032.,  1841648., 1906288., 1971952., 1873520., 1939184.,
      2005872., 2073584.,  1507988., 1558772., 1610324., 1662644., 1075256.,
      1110136., 1145528.,  1181432., 573276.,  591228.,  609436.,  627900.,
      250910.,  259246.,   267710.,  276302.,  534908.,  552092.,  569532.,
      587228.,  853018.,   879562.,  906490.,  933802.,  1206264., 1242680.,
      1279608., 1317048.,  1262200., 1299640., 1337592., 1376056., 1004986.,
      1033834., 1063066.,  1092682., 709564.,  729308.,  749308.,  769564.,
      374910.,  385038.,   395294.,  405678.,  2590.,    6830.,    11198.,
      15694.,   21884.,    30876.,   40124.,   49628.,   58906.,   73162.,
      87802.,   102826.,   114680.,  134712.,  155256.,  176312.,  187000.,
      208056.,  229624.,   251704.,  174010.,  190570.,  207514.,  224842.,
      139196.,  150748.,   162556.,  174620.,  81534.,   87566.,   93726.,
      100014.,  88540.,    99324.,   110364.,  121660.,  219704.,  242296.,
      265400.,  289016.,   395540.,  430964.,  467156.,  504116.,  618096.,
      667376.,  717680.,   769008.,  779120.,  830448.,  882800.,  936176.,
      665684.,  705716.,   746516.,  788084.,  499384.,  527096.,  555320.,
      584056.,  278172.,   292540.,  307164.,  322044.,  278330.,  297962.,
      317978.,  338378.,   634420.,  675220.,  716788.,  759124.,  1071342.,
      1134846., 1199502.,  1265310., 1592168., 1679912., 1769192., 1860008.,
      1858280., 1949096.,  2041448., 2135336., 1536462., 1606878., 1678446.,
      1751166., 1121524.,  1170004., 1219252., 1269268., 610394.,  635402.,
      660794.,  686570.,   592440.,  623224.,  654520.,  686328.,  1306992.,
      1370608., 1435248.,  1500912., 2147752., 2246248., 2346280., 2447848.,
      3118816., 3254240.,  3391712., 3531232., 3506400., 3645920., 3787488.,
      3931104., 2847784.,  2955496., 3064744., 3175528., 2046576., 2120432.,
      2195312., 2271216.,  1098680., 1136632., 1175096., 1214072., 1046200.,
      1082104., 1118520.,  1155448., 2234992., 2308848., 2383728., 2459632.,
      3570472., 3684328.,  3799720., 3916648., 5056736., 5212640., 5370592.,
      5530592., 5444320.,  5604320., 5766368., 5930464., 4331944., 4455016.,
      4579624., 4705768.,  3056496., 3140592., 3225712., 3311856., 1613880.,
      1656952., 1700536.,  1744632., 1083770., 1114154., 1144922., 1176074.,
      2288308., 2350612.,  2413684., 2477524., 3616686., 3712446., 3809358.,
      3907422., 5071976.,  5202728., 5335016., 5468840., 5387240., 5521064.,
      5656424., 5793320.,  4247694., 4350366., 4454190., 4559166., 2972020.,
      3042004., 3112756.,  3184276., 1557146., 1592906., 1629050., 1665578.,
      935580.,  958140.,   980956.,  1004028., 1960888., 2007032., 2053688.,
      2100856., 3077972.,  3148724., 3220244., 3292532., 4288880., 4385264.,
      4482672., 4581104.,  4515440., 4613872., 4713328., 4813808., 3538580.,
      3613940., 3690068.,  3766964., 2461752., 2513016., 2564792., 2617080.,
      1282908., 1309052.,  1335452., 1362108., 581150.,  593582.,  606142.,
      618830.,  1211772.,  1237148., 1262780., 1288668., 1892890., 1931722.,
      1970938., 2010538.,  2625528., 2678328., 2731640., 2785464., 2747000.,
      2800824., 2855160.,  2910008., 2143162., 2184298., 2225818., 2267722.,
      1484732., 1512668.,  1540860., 1569308., 770686.,  784910.,  799262.,
      813742.,  5150.,     13486.,   21950.,   30542.,   43388.,   60572.,
      78012.,   95708.,    115738.,  142282.,  169210.,  196522.,  223224.,
      259640.,  296568.,   334008.,  361080.,  398520.,  436472.,  474936.,
      329146.,  357994.,   387226.,  416842.,  259004.,  278748.,  298748.,
      319004.,  149630.,   159758.,  170014.,  180398.,  175580.,  194556.,
      213788.,  233276.,   426552.,  465528.,  505016.,  545016.,  754964.,
      814964.,  875732.,   937268.,  1162864., 1244912., 1327984., 1412080.,
      1454960., 1539056.,  1624176., 1710320., 1221716., 1286324., 1351700.,
      1417844., 902840.,   946936.,  991544.,  1036664., 496284.,  518844.,
      541660.,  564732.,   531770.,  563690.,  595994.,  628682.,  1190452.,
      1255828., 1321972.,  1388884., 1979118., 2079486., 2181006., 2283678.,
      2900840., 3037736.,  3176168., 3316136., 3363560., 3503528., 3645032.,
      3788072., 2739150.,  2846430., 2954862., 3064446., 1972468., 2045524.,
      2119348., 2193940.,  1060442., 1097738., 1135418., 1173482., 1094200.,
      1141368., 1189048.,  1237240., 2376048., 2472432., 2569840., 2668272.,
      3849640., 3997288.,  4146472., 4297192., 5519072., 5720032., 5923040.,
      6128096., 6168800.,  6373856., 6580960., 6790112., 4942888., 5099752.,
      5258152., 5418088.,  3508848., 3615472., 3723120., 3831792., 1862584.,
      1916920., 1971768.,  2027128., 1875640., 1927928., 1980728., 2034040.,
      3959408., 4066032.,  4173680., 4282352., 6255400., 6418408., 6582952.,
      6749032., 8767712.,  8989152., 9212640., 9438176., 9417440., 9642976.,
      9870560., 10100192., 7410088., 7582312., 7756072., 7931368., 5174128.,
      5290992., 5408880.,  5527792., 2705464., 2764920., 2824888., 2885368.,
      1828730., 1871402.,  1914458., 1957898., 3827380., 3914260., 4001908.,
      4090324., 5999022.,  6131646., 6265422., 6400350., 8346728., 8526632.,
      8708072., 8891048.,  8858600., 9041576., 9226088., 9412136., 6924942.,
      7064478., 7205166.,  7347006., 4806004., 4900564., 4995892., 5091988.,
      2498714., 2546762.,  2595194., 2644010., 1514140., 1544892., 1575900.,
      1607164., 3150776.,  3213304., 3276344., 3339896., 4911956., 5007284.,
      5103380., 5200244.,  6799728., 6928880., 7059056., 7190256., 7157360.,
      7288560., 7420784.,  7554032., 5569172., 5669108., 5769812., 5871284.,
      3848248., 3915896.,  3984056., 4052728., 1992540., 2026876., 2061468.,
      2096316., 911390.,   927918.,  944574.,  961358.,  1888636., 1922204.,
      1956028., 1990108.,  2932762., 2983882., 3035386., 3087274., 4044792.,
      4113976., 4183672.,  4253880., 4231800., 4302008., 4372728., 4443960.,
      3281338., 3334762.,  3388570., 3442762., 2259900., 2296028., 2332412.,
      2369052., 1166462.,  1184782., 1203230., 1221806.};
  const std::array<int, 4> in_shape = {{3, 8, 8, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_input_backprop_test(exp_out, in_shape, multiplier, padding,
                                max_input_val);
}